public override byte[] DeriveKeyFromHmac( ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm, byte[] hmacKey, byte[] secretPrepend, byte[] secretAppend) { if (otherPartyPublicKey == null) { throw new ArgumentNullException(nameof(otherPartyPublicKey)); } if (string.IsNullOrEmpty(hashAlgorithm.Name)) { throw new ArgumentException(SR.Cryptography_HashAlgorithmNameNullOrEmpty, nameof(hashAlgorithm)); } ThrowIfDisposed(); return(ECDiffieHellmanDerivation.DeriveKeyFromHmac( otherPartyPublicKey, hashAlgorithm, hmacKey, secretPrepend, secretAppend, (pubKey, hasher) => DeriveSecretAgreement(pubKey, hasher))); }
public override byte[] DeriveKeyTls(ECDiffieHellmanPublicKey otherPartyPublicKey, byte[] prfLabel, byte[] prfSeed) { ArgumentNullException.ThrowIfNull(otherPartyPublicKey); ArgumentNullException.ThrowIfNull(prfLabel); ArgumentNullException.ThrowIfNull(prfSeed); ThrowIfDisposed(); return(ECDiffieHellmanDerivation.DeriveKeyTls( otherPartyPublicKey, prfLabel, prfSeed, DeriveSecretAgreement)); }
public override byte[] DeriveKeyTls(ECDiffieHellmanPublicKey otherPartyPublicKey, byte[] prfLabel, byte[] prfSeed) { if (otherPartyPublicKey == null) throw new ArgumentNullException(nameof(otherPartyPublicKey)); if (prfLabel == null) throw new ArgumentNullException(nameof(prfLabel)); if (prfSeed == null) throw new ArgumentNullException(nameof(prfSeed)); return ECDiffieHellmanDerivation.DeriveKeyTls( otherPartyPublicKey, prfLabel, prfSeed, (pubKey, hasher) => DeriveSecretAgreement(pubKey, hasher)); }
public override byte[] DeriveKeyFromHash( ECDiffieHellmanPublicKey otherPartyPublicKey, HashAlgorithmName hashAlgorithm, byte[]?secretPrepend, byte[]?secretAppend) { ArgumentNullException.ThrowIfNull(otherPartyPublicKey); ArgumentException.ThrowIfNullOrEmpty(hashAlgorithm.Name, nameof(hashAlgorithm)); ThrowIfDisposed(); return(ECDiffieHellmanDerivation.DeriveKeyFromHash( otherPartyPublicKey, hashAlgorithm, secretPrepend, secretAppend, DeriveSecretAgreement)); }