This documentation is archived and is not being maintained.

ECDiffieHellmanCng.DeriveSecretAgreementHandle Method (CngKey)

Gets a handle to the secret agreement generated between two parties, given a CngKey object that contains the second party's public key.

Namespace:  System.Security.Cryptography
Assembly:  System.Core (in System.Core.dll)

[<SecurityPermissionAttribute(SecurityAction.Demand, UnmanagedCode = true)>]
member DeriveSecretAgreementHandle : 
        otherPartyPublicKey:CngKey -> SafeNCryptSecretHandle 


Type: System.Security.Cryptography.CngKey
An object that contains the public part of the Elliptic Curve Diffie-Hellman (ECDH) key from the other party in the key exchange.

Return Value

Type: Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle
A handle to the secret agreement. This information is calculated from the current object's private key and the specified public key.


otherPartyPublicKey is a null reference (Nothing in Visual Basic).


otherPartyPublicKey is not an ECDH key, or it is not the correct size.


All other errors.

.NET Framework

Supported in: 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.