org.bouncycastle.crypto.encodings

Class OAEPEncoding

Implemented Interfaces:
AsymmetricBlockCipher

public class OAEPEncoding
extends java.lang.Object
implements AsymmetricBlockCipher

Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.

Constructor Summary

OAEPEncoding(AsymmetricBlockCipher cipher)
OAEPEncoding(AsymmetricBlockCipher cipher, Digest hash)
OAEPEncoding(AsymmetricBlockCipher cipher, Digest hash, byte[] encodingParams)

Method Summary

byte[]
decodeBlock(byte[] in, int inOff, int inLen)
byte[]
encodeBlock(byte[] in, int inOff, int inLen)
int
getInputBlockSize()
returns the largest size an input block can be.
int
getOutputBlockSize()
returns the maximum size of the block produced by this cipher.
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.

Constructor Details

OAEPEncoding

public OAEPEncoding(AsymmetricBlockCipher cipher)


OAEPEncoding

public OAEPEncoding(AsymmetricBlockCipher cipher,
                    Digest hash)


OAEPEncoding

public OAEPEncoding(AsymmetricBlockCipher cipher,
                    Digest hash,
                    byte[] encodingParams)

Method Details

decodeBlock

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

Throws:
InvalidCipherTextException - if the decrypted block turns out to be badly formatted.


encodeBlock

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


getInputBlockSize

public int getInputBlockSize()
returns the largest size an input block can be.
Specified by:
getInputBlockSize in interface AsymmetricBlockCipher

Returns:
maximum size for an input block.


getOutputBlockSize

public int getOutputBlockSize()
returns the maximum size of the block produced by this cipher.
Specified by:
getOutputBlockSize in interface AsymmetricBlockCipher

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


getUnderlyingCipher

public AsymmetricBlockCipher getUnderlyingCipher()


init

public void init(boolean forEncryption,
                 CipherParameters param)
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.


processBlock

public byte[] processBlock(byte[] in,
                           int inOff,
                           int inLen)
            throws InvalidCipherTextException
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

Returns:
the resulting byte array of the encryption/decryption process.

Throws:
InvalidCipherTextException - data decrypts improperly.