Bouncy Castle Cryptography Library 1.45

## org.bouncycastle.crypto.encodings
Class ISO9796d1Encoding

    java.lang.Object
      org.bouncycastle.crypto.encodings.ISO9796d1Encoding

All Implemented Interfaces:
  AsymmetricBlockCipher

    public class ISO9796d1Encoding

extends java.lang.Object
implements AsymmetricBlockCipher

ISO 9796-1 padding. Note in the light of recent results you should only use this with RSA (rather than the "simpler" Rabin keys) and you should never use it with anything other than a hash (ie. even if the message is small don't sign the message, sign it's hash) or some "random" value. See your favorite search engine for details.

Constructor Summary
`ISO9796d1Encoding(AsymmetricBlockCipher cipher)`

Method Summary
`int` `getInputBlockSize()` return the input block size.
`int` `getOutputBlockSize()` return the maximum possible size for the output.
`int` `getPadBits()` retrieve the number of pad bits in the last decoded message.
`AsymmetricBlockCipher` `getUnderlyingCipher()`
`void` `init(boolean forEncryption, CipherParameters param)` initialise the cipher.
`byte[]` `processBlock(byte[] in, int inOff, int inLen)` process the block of len bytes stored in in from offset inOff.
`void` `setPadBits(int padBits)` set the number of bits in the next message to be treated as pad bits.

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

Constructor Detail

### ISO9796d1Encoding

    public ISO9796d1Encoding(AsymmetricBlockCipher cipher)

Method Detail

### getUnderlyingCipher

    public AsymmetricBlockCipher getUnderlyingCipher()

### init

    public void init(boolean forEncryption,
                     CipherParameters param)

  Description copied from interface: `AsymmetricBlockCipher`
  initialise the cipher.

  Specified by:
    `init` in interface `AsymmetricBlockCipher`
  Parameters:
    `forEncryption` - if true the cipher is initialised for encryption, if false for decryption.
    `param` - the key and other data required by the cipher.

### getInputBlockSize

    public int getInputBlockSize()

  return the input block size. The largest message we can process is (key_size_in_bits + 3)/16, which in our world comes to key_size_in_bytes / 2.

  Specified by:
    `getInputBlockSize` in interface `AsymmetricBlockCipher`
  Returns:
    maximum size for an input block.

### getOutputBlockSize

    public int getOutputBlockSize()

  return the maximum possible size for the output.

  Specified by:
    `getOutputBlockSize` in interface `AsymmetricBlockCipher`
  Returns:
    maximum size of the output block produced by the cipher.

### setPadBits

    public void setPadBits(int padBits)

  set the number of bits in the next message to be treated as pad bits.

### getPadBits

    public int getPadBits()

  retrieve the number of pad bits in the last decoded message.

### processBlock

    public byte[] processBlock(byte[] in,
                               int inOff,
                               int inLen)
                        throws InvalidCipherTextException

  Description copied from interface: `AsymmetricBlockCipher`
  process the block of len bytes stored in in from offset inOff.

  Specified by:
    `processBlock` in interface `AsymmetricBlockCipher`
  Parameters:
    `in` - the input data
    `inOff` - offset into the in array where the data starts
    `inLen` - the length of the block to be processed.
  Returns:
    the resulting byte array of the encryption/decryption process.
  Throws:
    `InvalidCipherTextException` - data decrypts improperly.

Bouncy Castle Cryptography Library 1.45