org.bouncycastle.crypto.engines

## Class IESEngine

- java.lang.Object
- - org.bouncycastle.crypto.engines.IESEngine

    public class IESEngine
    extends java.lang.Object

support class for constructing intergrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers

### Constructor Summary

Constructors
Constructor and Description
`IESEngine(BasicAgreement agree, DerivationFunction kdf, Mac mac)` set up for use with stream mode, where the key derivation function is used to provide a stream of bytes to xor with the message.
`IESEngine(BasicAgreement agree, DerivationFunction kdf, Mac mac, BufferedBlockCipher cipher)` set up for use in conjunction with a block cipher to handle the message.

### Method Summary

Methods
`void` `init(boolean forEncryption, CipherParameters privParam, CipherParameters pubParam, CipherParameters param)` Initialise the encryptor.
`byte[]` `processBlock(byte[] in, int inOff, int inLen)`

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

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

### Constructor Detail

#### IESEngine

    public IESEngine(BasicAgreement agree,
             DerivationFunction kdf,
             Mac mac)

set up for use with stream mode, where the key derivation function is used to provide a stream of bytes to xor with the message.

Parameters:
  `agree` - the key agreement used as the basis for the encryption
  `kdf` - the key derivation function used for byte generation
  `mac` - the message authentication code generator for the message

#### IESEngine

    public IESEngine(BasicAgreement agree,
             DerivationFunction kdf,
             Mac mac,
             BufferedBlockCipher cipher)

set up for use in conjunction with a block cipher to handle the message.

Parameters:
  `agree` - the key agreement used as the basis for the encryption
  `kdf` - the key derivation function used for byte generation
  `mac` - the message authentication code generator for the message
  `cipher` - the cipher to used for encrypting the message

### Method Detail

#### init

    public void init(boolean forEncryption,
            CipherParameters privParam,
            CipherParameters pubParam,
            CipherParameters param)

Initialise the encryptor.

Parameters:
  `forEncryption` - whether or not this is encryption/decryption.
  `privParam` - our private key parameters
  `pubParam` - the recipient's/sender's public key parameters
  `param` - encoding and derivation parameters.

#### processBlock

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

Throws:
  `InvalidCipherTextException`