gnu.crypto.pad

Class PKCS7

Implemented Interfaces:
IPad

public final class PKCS7
extends BasePad

The implementation of the PKCS7 padding algorithm.

This algorithm is described for 8-byte blocks in [RFC-1423] and extended to block sizes of up to 256 bytes in [PKCS-7]. References:
RFC-1423: Privacy Enhancement for Internet Electronic Mail: Part III: Algorithms, Modes, and Identifiers.
IETF. [PKCS-7]PKCS #7: Cryptographic Message Syntax Standard - An RSA Laboratories Technical Note.
RSA Security.

Version:
$Revision: 1.5 $

Field Summary

Fields inherited from class gnu.crypto.pad.BasePad

blockSize, name

Constructor Summary

PKCS7()
Trivial package-private constructor for use by the Factory class.

Method Summary

byte[]
pad(byte[] in, int offset, int length)
Returns the byte sequence that should be appended to the designated input.
void
setup()
int
unpad(byte[] in, int offset, int length)
Returns the number of bytes to discard from a designated input buffer.

Methods inherited from class gnu.crypto.pad.BasePad

init, name, pad, reset, selfTest, setup, unpad

Constructor Details

PKCS7

(package private)  PKCS7()
Trivial package-private constructor for use by the Factory class.

Method Details

pad

public byte[] pad(byte[] in,
                  int offset,
                  int length)
Returns the byte sequence that should be appended to the designated input.
Specified by:
pad in interface IPad
Overrides:
pad in interface BasePad
Parameters:
in - the input buffer containing the bytes to pad.
offset - the starting index of meaningful data in in.
length - the number of meaningful bytes in in.
Returns:
the possibly 0-byte long sequence to be appended to the designated input.

setup

public void setup()
Overrides:
setup in interface BasePad

unpad

public int unpad(byte[] in,
                 int offset,
                 int length)
            throws WrongPaddingException
Returns the number of bytes to discard from a designated input buffer.
Specified by:
unpad in interface IPad
Overrides:
unpad in interface BasePad
Parameters:
in - the input buffer containing the bytes to unpad.
offset - the starting index of meaningful data in in.
length - the number of meaningful bytes in in.
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.