Package org.bouncycastle.crypto.engines
Class IESEngine
java.lang.Object
org.bouncycastle.crypto.engines.IESEngine
- Direct Known Subclasses:
OldIESEngine
Support class for constructing integrated encryption ciphers
for doing basic message exchanges on top of key agreement ciphers.
Follows the description given in IEEE Std 1363a.
-
Constructor Summary
ConstructorsConstructorDescriptionIESEngine(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
Modifier and TypeMethodDescriptionprotected byte[]getLengthTag(byte[] p2) getMac()voidinit(boolean forEncryption, CipherParameters privParam, CipherParameters pubParam, CipherParameters params) Initialise the encryptor.voidinit(AsymmetricKeyParameter publicKey, CipherParameters params, EphemeralKeyPairGenerator ephemeralKeyPairGenerator) Initialise the decryptor.voidinit(AsymmetricKeyParameter privateKey, CipherParameters params, KeyParser publicKeyParser) Initialise the encryptor.byte[]processBlock(byte[] in, int inOff, int inLen)
-
Constructor Details
-
IESEngine
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 encryptionkdf- the key derivation function used for byte generationmac- the message authentication code generator for the message
-
IESEngine
Set up for use in conjunction with a block cipher to handle the message. It is strongly recommended that the cipher is not in ECB mode.- Parameters:
agree- the key agreement used as the basis for the encryptionkdf- the key derivation function used for byte generationmac- the message authentication code generator for the messagecipher- the cipher to used for encrypting the message
-
-
Method Details
-
init
public void init(boolean forEncryption, CipherParameters privParam, CipherParameters pubParam, CipherParameters params) Initialise the encryptor.- Parameters:
forEncryption- whether or not this is encryption/decryption.privParam- our private key parameterspubParam- the recipient's/sender's public key parametersparams- encoding and derivation parameters, may be wrapped to include an IV for an underlying block cipher.
-
init
public void init(AsymmetricKeyParameter publicKey, CipherParameters params, EphemeralKeyPairGenerator ephemeralKeyPairGenerator) Initialise the decryptor.- Parameters:
publicKey- the recipient's/sender's public key parametersparams- encoding and derivation parameters, may be wrapped to include an IV for an underlying block cipher.ephemeralKeyPairGenerator- the ephemeral key pair generator to use.
-
init
public void init(AsymmetricKeyParameter privateKey, CipherParameters params, KeyParser publicKeyParser) Initialise the encryptor.- Parameters:
privateKey- the recipient's private key.params- encoding and derivation parameters, may be wrapped to include an IV for an underlying block cipher.publicKeyParser- the parser for reading the ephemeral public key.
-
getCipher
-
getMac
-
processBlock
- Throws:
InvalidCipherTextException
-
getLengthTag
protected byte[] getLengthTag(byte[] p2)
-