package org.bouncycastle.crypto.engines; import org.bouncycastle.crypto.BasicAgreement; import org.bouncycastle.crypto.BufferedBlockCipher; import org.bouncycastle.crypto.DerivationFunction; import org.bouncycastle.crypto.Mac; import org.bouncycastle.util.Pack; /** * 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. */ public class OldIESEngine extends 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. * * @param agree the key agreement used as the basis for the encryption * @param kdf the key derivation function used for byte generation * @param mac the message authentication code generator for the message */ public OldIESEngine( BasicAgreement agree, DerivationFunction kdf, Mac mac) { super(agree, kdf, mac); } /** * set up for use in conjunction with a block cipher to handle the * message. * * @param agree the key agreement used as the basis for the encryption * @param kdf the key derivation function used for byte generation * @param mac the message authentication code generator for the message * @param cipher the cipher to used for encrypting the message */ public OldIESEngine( BasicAgreement agree, DerivationFunction kdf, Mac mac, BufferedBlockCipher cipher) { super(agree, kdf, mac, cipher); } protected byte[] getLengthTag(byte[] p2) { byte[] L2 = new byte[4]; if (p2 != null) { Pack.intToBigEndian(p2.length * 8, L2, 0); } return L2; } }