org.bouncycastle.crypto.engines
Class IESEngine

java.lang.Object
  extended by 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


Field Summary
(package private)  BasicAgreement agree
           
(package private)  BufferedBlockCipher cipher
           
(package private)  boolean forEncryption
           
(package private)  DerivationFunction kdf
           
(package private)  Mac mac
           
(package private)  byte[] macBuf
           
(package private)  IESParameters param
           
(package private)  CipherParameters privParam
           
(package private)  CipherParameters pubParam
           
 
Constructor Summary
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
private  byte[] decryptBlock(byte[] in_enc, int inOff, int inLen, byte[] z)
           
private  byte[] encryptBlock(byte[] in, int inOff, int inLen, byte[] z)
           
private  byte[] generateKdfBytes(KDFParameters kParam, int length)
           
 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
 

Field Detail

agree

BasicAgreement agree

kdf

DerivationFunction kdf

mac

Mac mac

cipher

BufferedBlockCipher cipher

macBuf

byte[] macBuf

forEncryption

boolean forEncryption

privParam

CipherParameters privParam

pubParam

CipherParameters pubParam

param

IESParameters param
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.

decryptBlock

private byte[] decryptBlock(byte[] in_enc,
                            int inOff,
                            int inLen,
                            byte[] z)
                     throws InvalidCipherTextException
Throws:
InvalidCipherTextException

encryptBlock

private byte[] encryptBlock(byte[] in,
                            int inOff,
                            int inLen,
                            byte[] z)
                     throws InvalidCipherTextException
Throws:
InvalidCipherTextException

generateKdfBytes

private byte[] generateKdfBytes(KDFParameters kParam,
                                int length)

processBlock

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