For the latest news and information visit The GNU Crypto project

## gnu.crypto.pad
Interface IPad

All Known Implementing Classes:
  BasePad

public interface IPad

The basic visible methods of any padding algorithm.

Padding algorithms serve to pad and unpad byte arrays usually as the last step in an encryption or respectively a decryption operation. Their input buffers are usually those processed by instances of `IMode` and/or `IBlockCipher`.

Method Summary
`void` `init(int bs)` Initialises the padding scheme with a designated block size.
`java.lang.String` `name()`
`byte[]` `pad(byte[] in, int offset, int length)` 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.
`int` `unpad(byte[] in, int offset, int length)` Returns the number of bytes to discard from a designated input buffer.

Method Detail

### name

    public java.lang.String name()

  Returns:
    the canonical name of this instance.

### init

    public void init(int bs)
              throws java.lang.IllegalStateException

  Initialises the padding scheme with a designated block size.

  Parameters:
    `bs` - the designated block size.
  Throws:
    `java.lang.IllegalStateException` - if the instance is already initialised.
    `java.lang.IllegalArgumentException` - if the block size value is invalid.

### pad

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

  Returns the byte sequence that should be appended to the designated input.

  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

  Returns the number of bytes to discard from a designated input buffer.

  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.

### reset

    public void reset()

  Resets the scheme instance for re-initialisation and use with other characteristics. This method always succeeds.

### selfTest

    public boolean selfTest()

  A basic symmetric pad/unpad test.

  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.