gnu.crypto.pad

Class PKCS1_V1_5

Implemented Interfaces:
IPad

public class PKCS1_V1_5
extends BasePad

A padding algorithm implementation of the EME-PKCS1-V1.5 encoding/decoding algorithm as described in section 7.2 of RFC-3447. This is effectively an Adapter over an instance of EME_PKCS1_V1_5 initialised with the RSA public shared modulus length (in bytes).

References:

  1. Public-Key Cryptography Standards (PKCS) #1:
    RSA Cryptography Specifications Version 2.1.
    Jakob Jonsson and Burt Kaliski.
Version:
$Revision: 1.2 $
See Also:
EME_PKCS1_V1_5

Field Summary

Fields inherited from class gnu.crypto.pad.BasePad

blockSize, name

Constructor Summary

PKCS1_V1_5()
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.
boolean
selfTest()
A basic symmetric pad/unpad test.
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

PKCS1_V1_5

(package private)  PKCS1_V1_5()
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.

selfTest

public boolean selfTest()
A basic symmetric pad/unpad test.
Specified by:
selfTest in interface IPad
Overrides:
selfTest in interface BasePad
Returns:
true if the implementation passes a basic symmetric self-test. Returns false otherwise.

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.