gnu.crypto.pad

Class BasePad

Implemented Interfaces:
IPad
Known Direct Subclasses:
PKCS1_V1_5, PKCS7, TBC

public abstract class BasePad
extends java.lang.Object
implements IPad

An abstract class to facilitate implementing padding algorithms.

Version:
$Revision: 1.5 $

Field Summary

protected int
blockSize
The block size, in bytes, for this instance.
protected String
name
The canonical name prefix of the padding algorithm.

Constructor Summary

BasePad(String name)
Trivial constructor for use by concrete subclasses.

Method Summary

void
init(int bs)
Initialises the padding scheme with a designated block size.
String
name()
byte[]
pad(byte[] in, int off, int len)
Returns the byte sequence that should be appended to the designated input.
void
reset()
Resets the scheme instance for re-initialisation and use with other characteristics.
boolean
selfTest()
A basic symmetric pad/unpad test.
void
setup()
If any additional checks or resource setup must be done by the subclass, then this is the hook for it.
int
unpad(byte[] in, int off, int len)
Returns the number of bytes to discard from a designated input buffer.

Field Details

blockSize

protected int blockSize
The block size, in bytes, for this instance.


name

protected String name
The canonical name prefix of the padding algorithm.

Constructor Details

BasePad

protected BasePad(String name)
Trivial constructor for use by concrete subclasses.

Method Details

init

public void init(int bs)
            throws IllegalStateException
Initialises the padding scheme with a designated block size.
Specified by:
init in interface IPad

Parameters:
bs - the designated block size.


name

public String name()
Specified by:
name in interface IPad

Returns:
the canonical name of this instance.


pad

public byte[] pad(byte[] in,
                  int off,
                  int len)
Returns the byte sequence that should be appended to the designated input.
Specified by:
pad in interface IPad

Parameters:
in - the input buffer containing the bytes to pad.

Returns:
the possibly 0-byte long sequence to be appended to the designated input.


reset

public void reset()
Resets the scheme instance for re-initialisation and use with other characteristics. This method always succeeds.
Specified by:
reset in interface IPad


selfTest

public boolean selfTest()
A basic symmetric pad/unpad test.
Specified by:
selfTest in interface IPad

Returns:
true if the implementation passes a basic symmetric self-test. Returns false otherwise.


setup

public void setup()


unpad

public int unpad(byte[] in,
                 int off,
                 int len)
            throws WrongPaddingException
Returns the number of bytes to discard from a designated input buffer.
Specified by:
unpad in interface IPad

Parameters:
in - the input buffer containing the bytes to unpad.

Returns:
the number of bytes to discard, to the left of index position offset + length in in. In other words, if the return value of a successful invocation of this method is result, then the unpadded byte sequence will be offset + length - result bytes in in, starting from index position offset.

Throws:
WrongPaddingException - if the data is not terminated with the expected padding bytes.


Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.