public class

ISO9796d1Encoding

extends Object
implements AsymmetricBlockCipher
java.lang.Object
   ↳ org.bouncycastle.crypto.encodings.ISO9796d1Encoding

Class Overview

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.

Summary

Public Constructors
ISO9796d1Encoding(AsymmetricBlockCipher cipher)
Public Methods
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.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.bouncycastle.crypto.AsymmetricBlockCipher

Public Constructors

public ISO9796d1Encoding (AsymmetricBlockCipher cipher)

Public Methods

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.

Returns
  • maximum size for an input block.

public int getOutputBlockSize ()

return the maximum possible size for the output.

Returns
  • maximum size of the output block produced by the cipher.

public int getPadBits ()

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

public AsymmetricBlockCipher getUnderlyingCipher ()

public void init (boolean forEncryption, CipherParameters param)

initialise the cipher.

Parameters
forEncryption if true the cipher is initialised for encryption, if false for decryption.
param the key and other data required by the cipher.

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

process the block of len bytes stored in in from offset inOff.

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.

public void setPadBits (int padBits)

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