Esempio n. 1
0
    public virtual void Init(IDerivationParameters param)
    {
        DHKdfParameters dHKdfParameters = (DHKdfParameters)param;

        algorithm = dHKdfParameters.Algorithm;
        keySize   = dHKdfParameters.KeySize;
        z         = dHKdfParameters.GetZ();
    }
Esempio n. 2
0
    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));
    }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }