public virtual void Init(IDerivationParameters param) { DHKdfParameters dHKdfParameters = (DHKdfParameters)param; algorithm = dHKdfParameters.Algorithm; keySize = dHKdfParameters.KeySize; z = dHKdfParameters.GetZ(); }
public override BigInteger CalculateAgreement(ICipherParameters pubKey) { BigInteger r = base.CalculateAgreement(pubKey); int defaultKeySize = GeneratorUtilities.GetDefaultKeySize(algorithm); DHKdfParameters parameters = new DHKdfParameters(new DerObjectIdentifier(algorithm), defaultKeySize, BigIntToBytes(r)); kdf.Init(parameters); byte[] array = new byte[defaultKeySize / 8]; kdf.GenerateBytes(array, 0, array.Length); return(new BigInteger(1, array)); }
public override BigInteger CalculateAgreement( ICipherParameters pubKey) { BigInteger result = base.CalculateAgreement(pubKey); int keySize = (int)algorithms[algorithm]; DHKdfParameters dhKdfParams = new DHKdfParameters( new DerObjectIdentifier(algorithm), keySize, result.ToByteArrayUnsigned()); kdf.Init(dhKdfParams); byte[] keyBytes = new byte[keySize / 8]; kdf.GenerateBytes(keyBytes, 0, keyBytes.Length); return(new BigInteger(1, keyBytes)); }
public override BigInteger CalculateAgreement( ICipherParameters pubKey) { // Note that the ec.KeyAgreement class in JCE only uses kdf in one // of the engineGenerateSecret methods. BigInteger result = base.CalculateAgreement(pubKey); int keySize = GeneratorUtilities.GetDefaultKeySize(algorithm); DHKdfParameters dhKdfParams = new DHKdfParameters( new DerObjectIdentifier(algorithm), keySize, BigIntToBytes(result)); kdf.Init(dhKdfParams); byte[] keyBytes = new byte[keySize / 8]; kdf.GenerateBytes(keyBytes, 0, keyBytes.Length); return(new BigInteger(1, keyBytes)); }