For the latest news and information visit The GNU Crypto project

## gnu.crypto.pad
Class PKCS1_V1_5

    java.lang.Object
      |
      +--gnu.crypto.pad.BasePad
            |
            +--gnu.crypto.pad.PKCS1_V1_5

All 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.

See Also:
  `EME_PKCS1_V1_5`

Field Summary

Fields inherited from class gnu.crypto.pad.BasePad
`blockSize, name`

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()` 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 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, reset`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### setup

    public void setup()

  Description copied from class: `BasePad`

  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 `BasePad.init(int)` method returns.

  Specified by:
    `setup` in class `BasePad`

### pad

    public byte[] pad(byte[] in,
                      int offset,
                      int length)

  Description copied from interface: `IPad`
  Returns the byte sequence that should be appended to the designated input.

  Specified by:
    `pad` in interface `IPad`
  Specified by:
    `pad` in class `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.

### unpad

    public int unpad(byte[] in,
                     int offset,
                     int length)
              throws WrongPaddingException

  Description copied from interface: `IPad`
  Returns the number of bytes to discard from a designated input buffer.

  Specified by:
    `unpad` in interface `IPad`
  Specified by:
    `unpad` in class `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.

### selfTest

    public boolean selfTest()

  Description copied from interface: `IPad`
  A basic symmetric pad/unpad test.

  Specified by:
    `selfTest` in interface `IPad`
  Overrides:
    `selfTest` in class `BasePad`
  Returns:
    `true` if the implementation passes a basic symmetric self-test. Returns `false` otherwise.

For the latest news and information visit The GNU Crypto project

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.