ECDiffieHellman Class
Provides an abstract base class that Elliptic Curve Diffie-Hellman (ECDH) algorithm implementations can derive from. This class provides the basic set of operations that all ECDH implementations must support.
Assembly: System.Core (in System.Core.dll)
System.Security.Cryptography::AsymmetricAlgorithm
System.Security.Cryptography::ECDiffieHellman
System.Security.Cryptography::ECDiffieHellmanCng
| Name | Description | |
|---|---|---|
![]() | ECDiffieHellman() | Initializes a new instance of the ECDiffieHellman class. |
| Name | Description | |
|---|---|---|
![]() | KeyExchangeAlgorithm | Gets the name of the key exchange algorithm.(Overrides AsymmetricAlgorithm::KeyExchangeAlgorithm.) |
![]() | KeySize | Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.(Inherited from AsymmetricAlgorithm.) |
![]() | LegalKeySizes | Gets the key sizes that are supported by the asymmetric algorithm.(Inherited from AsymmetricAlgorithm.) |
![]() | PublicKey | Gets the public key that is being used by the current Elliptic Curve Diffie-Hellman (ECDH) instance. |
![]() | SignatureAlgorithm | Gets the name of the signature algorithm.(Overrides AsymmetricAlgorithm::SignatureAlgorithm.) |
| Name | Description | |
|---|---|---|
![]() | Clear() | Releases all resources used by the AsymmetricAlgorithm class.(Inherited from AsymmetricAlgorithm.) |
![]() ![]() | Create() | Creates a new instance of the default implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm. |
![]() ![]() | Create(ECCurve) | Creates a new instance of the default implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm with a new public/private key-pair generated over the specified curve. |
![]() ![]() | Create(ECParameters) | Creates a new instance of the default implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm with the key described by the specified ECParameters object. |
![]() ![]() | Create(String^) | Creates a new instance of the specified implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm. |
![]() | DeriveKeyFromHash(ECDiffieHellmanPublicKey^, HashAlgorithmName) | Derives bytes that can be used as a key using a hash function, given another party's public key and hash algorithm's name. |
![]() | DeriveKeyFromHash(ECDiffieHellmanPublicKey^, HashAlgorithmName, array<Byte>^, array<Byte>^) | When implemented in a derived class, derives bytes that can be used as a key using a hash function, given another party's public key, hash algorithm's name, a prepend value and an append value. |
![]() | DeriveKeyFromHmac(ECDiffieHellmanPublicKey^, HashAlgorithmName, array<Byte>^) | Derives bytes that can be used as a key using a Hash-based Message Authentication Code (HMAC). |
![]() | DeriveKeyFromHmac(ECDiffieHellmanPublicKey^, HashAlgorithmName, array<Byte>^, array<Byte>^, array<Byte>^) | When implemented in a derived class, derives bytes that can be used as a key using a Hash-based Message Authentication Code (HMAC). |
![]() | DeriveKeyMaterial(ECDiffieHellmanPublicKey^) | Derives bytes that can be used as a key, given another party's public key. |
![]() | DeriveKeyTls(ECDiffieHellmanPublicKey^, array<Byte>^, array<Byte>^) | When implemented in a derived class, derives bytes that can be used as a key using a Transport Layer Security (TLS) Pseudo-Random Function (PRF) derivation algorithm. |
![]() | Dispose() | Releases all resources used by the current instance of the AsymmetricAlgorithm class.(Inherited from AsymmetricAlgorithm.) |
![]() | Dispose(Boolean) | Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.(Inherited from AsymmetricAlgorithm.) |
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | ExportExplicitParameters(Boolean) | When overridden in a derived class, exports either the public or the public and private key information using the explicit curve form from a working ECDiffieHellman key to an ECParameters structure so that it can be passed to the ECDiffieHellman::ImportParameters method. |
![]() | ExportParameters(Boolean) | When overridden in a derived class, exports either the public or the public and private key information from a working ECDiffieHellman key to an ECParameters structure so that it can be passed to the ECDiffieHellman::ImportParameters method. |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | FromXmlString(String^) | When overridden in a derived class, reconstructs an AsymmetricAlgorithm object from an XML string. Otherwise, throws a NotImplementedException.(Inherited from AsymmetricAlgorithm.) |
![]() | GenerateKey(ECCurve) | When overridden in a derived class, generates a new ephemeral public/private key pair for the specified curve. |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ImportParameters(ECParameters) | When overridden in a derived class, imports the specified parameters for an ECCurve as an ephemeral key into the current ECDiffieHellman object. |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | ToXmlString(Boolean) | When overridden in a derived class, creates and returns an XML string representation of the current AsymmetricAlgorithm object. Otherwise, throws a NotImplementedException.(Inherited from AsymmetricAlgorithm.) |
| Name | Description | |
|---|---|---|
![]() | KeySizeValue | Represents the size, in bits, of the key modulus used by the asymmetric algorithm.(Inherited from AsymmetricAlgorithm.) |
![]() | LegalKeySizesValue | Specifies the key sizes that are supported by the asymmetric algorithm.(Inherited from AsymmetricAlgorithm.) |
This class serves as the abstract base class for ECDH implementations.
Available since 3.5
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




