org.bouncycastle.crypto.encodings

## Class OAEPEncoding

- java.lang.Object
- - org.bouncycastle.crypto.encodings.OAEPEncoding

All Implemented Interfaces:
  AsymmetricBlockCipher

    public class OAEPEncoding
    extends java.lang.Object
    implements AsymmetricBlockCipher

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

### Constructor Summary

Constructors
Constructor and Description
`OAEPEncoding(AsymmetricBlockCipher cipher)`
`OAEPEncoding(AsymmetricBlockCipher cipher, Digest hash)`
`OAEPEncoding(AsymmetricBlockCipher cipher, Digest hash, byte[] encodingParams)`
`OAEPEncoding(AsymmetricBlockCipher cipher, Digest hash, Digest mgf1Hash, byte[] encodingParams)`

### Method Summary

Methods
`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.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### OAEPEncoding

    public OAEPEncoding(AsymmetricBlockCipher cipher)

#### OAEPEncoding

    public OAEPEncoding(AsymmetricBlockCipher cipher,
                Digest hash)

#### OAEPEncoding

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

#### OAEPEncoding

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

### 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()

Description copied from interface: `AsymmetricBlockCipher`
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()

Description copied from interface: `AsymmetricBlockCipher`
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.

#### 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.

#### encodeBlock

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

Throws:
  `InvalidCipherTextException`

#### decodeBlock

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

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