Class ISO9796d1Encoding
java.lang.Object
org.bouncycastle.crypto.encodings.ISO9796d1Encoding
- All Implemented Interfaces:
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
-
Method Summary
Modifier and TypeMethodDescriptionint
return the input block size.int
return the maximum possible size for the output.int
retrieve the number of pad bits in the last decoded message.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.
-
Constructor Details
-
ISO9796d1Encoding
-
-
Method Details
-
getUnderlyingCipher
-
init
Description copied from interface:AsymmetricBlockCipher
initialise the cipher.- Specified by:
init
in interfaceAsymmetricBlockCipher
- 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 interfaceAsymmetricBlockCipher
- Returns:
- maximum size for an input block.
-
getOutputBlockSize
public int getOutputBlockSize()return the maximum possible size for the output.- Specified by:
getOutputBlockSize
in interfaceAsymmetricBlockCipher
- 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
Description copied from interface:AsymmetricBlockCipher
process the block of len bytes stored in in from offset inOff.- Specified by:
processBlock
in interfaceAsymmetricBlockCipher
- Parameters:
in
- the input datainOff
- offset into the in array where the data startsinLen
- the length of the block to be processed.- Returns:
- the resulting byte array of the encryption/decryption process.
- Throws:
InvalidCipherTextException
- data decrypts improperly.
-