public ECDiffieHellman(int keySize, KeyAgreementKeyDerivationFunction kdFunc, KeyAgreementKeyDerivationHashAlgorithm hashAlgo) : base(kdFunc, hashAlgo) { ECDiffieHellmanCng ecdh = new ECDiffieHellmanCng(keySize); ecdh.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash; switch (hashAlgo) { case KeyAgreementKeyDerivationHashAlgorithm.SHA256: ecdh.HashAlgorithm = CngAlgorithm.Sha256; break; case KeyAgreementKeyDerivationHashAlgorithm.SHA384: ecdh.HashAlgorithm = CngAlgorithm.Sha384; break; case KeyAgreementKeyDerivationHashAlgorithm.SHA512: ecdh.HashAlgorithm = CngAlgorithm.Sha512; break; default: throw new CryptoException("Key derivation hash algorithm not supported."); } _ecdh = ecdh; }
public KeyAgreement(KeyAgreementKeyDerivationFunction kdFunc, KeyAgreementKeyDerivationHashAlgorithm kdHashAlgo) { _kdFunc = kdFunc; _kdHashAlgo = kdHashAlgo; }
public DiffieHellman(DiffieHellmanGroupType group, KeyAgreementKeyDerivationFunction kdFunc, KeyAgreementKeyDerivationHashAlgorithm kdHashAlgo) : base(kdFunc, kdHashAlgo) { _group = group; DiffieHellmanGroup dhg = DiffieHellmanGroup.GetGroup(_group); _keySize = dhg.KeySize; _p = dhg.P; _g = dhg.G; _privateKey = GeneratePrivateKey(_p); }
public DiffieHellman(DiffieHellmanPublicKey publicKey, KeyAgreementKeyDerivationFunction kdFunc, KeyAgreementKeyDerivationHashAlgorithm kdHashAlgo) : base(kdFunc, kdHashAlgo) { _group = DiffieHellmanGroupType.None; _keySize = publicKey.KeySize; _p = publicKey.P; _g = publicKey.G; _privateKey = GeneratePrivateKey(_p); }
public DiffieHellman(DiffieHellmanPublicKey publicKey, KeyAgreementKeyDerivationFunction kdFunc, KeyAgreementKeyDerivationHashAlgorithm kdHashAlgo) : base(kdFunc, kdHashAlgo) { _keySize = publicKey.KeySize; _p = publicKey.P; _g = publicKey.G; GeneratePrivateKey(); }