gnu.javax.crypto.pad
Class BasePad
- IPad
An abstract class to facilitate implementing padding algorithms.
protected int | blockSize - The block size, in bytes, for this instance.
|
protected String | name - The canonical name prefix of the padding algorithm.
|
BasePad(String name) - Trivial constructor for use by concrete subclasses.
|
void | init(int bs)
|
void | init(Map<K,V> attributes) - Initialises the algorithm with designated attributes.
|
String | name()
|
abstract byte[] | pad(byte[] in, int off, int len)
|
void | reset()
|
boolean | selfTest() - A default implementation of a correctness test that exercises the padder
implementation, using block sizes varying from 2 to 256 bytes.
|
abstract void | setup() - If any additional checks or resource setup must be done by the subclass,
then this is the hook for it.
|
protected boolean | test1BlockSize(int size, byte[] buffer) - The basic symmetric test for a padder given a specific block size.
|
abstract int | unpad(byte[] in, int off, int len)
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
blockSize
protected int blockSize
The block size, in bytes, for this instance.
name
protected String name
The canonical name prefix of the padding algorithm.
BasePad
protected BasePad(String name)
Trivial constructor for use by concrete subclasses.
init
public void init(Map<K,V> attributes)
throws IllegalStateException
Initialises the algorithm with designated attributes. Names, valid and/or
recognisable by all concrete implementations are described in
IPad
class documentation. Other algorithm-specific attributes MUST be documented
in the implementation class of that padding algorithm.
For compatibility reasons, this method is not declared
abstract.
Furthermore, and unless overridden, the default implementation will throw
an
UnsupportedOperationException
. Concrete padding algorithms MUST
override this method if they wish to offer an initialisation method that
allows for other than the padding block size parameter to be specified.
- init in interface IPad
attributes
- a set of name-value pairs that describes the desired
future behaviour of this instance.
pad
public abstract byte[] pad(byte[] in,
int off,
int len)
- pad in interface IPad
selfTest
public boolean selfTest()
A default implementation of a correctness test that exercises the padder
implementation, using block sizes varying from 2 to 256 bytes.
- selfTest in interface IPad
true
if the concrete implementation correctly unpads
what it pads for all tested block sizes. Returns false
if the test fails for any block size.
setup
public abstract void setup()
If any additional checks or resource setup must be done by the subclass,
then this is the hook for it. This method will be called before the
init(int)
method returns.
test1BlockSize
protected boolean test1BlockSize(int size,
byte[] buffer)
The basic symmetric test for a padder given a specific block size.
The code ensures that the implementation is capable of unpadding what it
pads.
size
- the block size to test.buffer
- a work buffer. It is exposed as an argument for this method
to reduce un-necessary object allocations.
true
if the test passes; false
otherwise.
BasePad.java --
Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc.
This file is a part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
USA
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.