ECDiffieHellman.Create Method  
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Creates a new instance of an implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm.
Overloads
| 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) | 
		Obsolete.
	 Creates a new instance of the specified implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm. | 
Create()
Creates a new instance of the default implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm.
public:
 static System::Security::Cryptography::ECDiffieHellman ^ Create();[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Security.Cryptography.ECDiffieHellman Create();public static System.Security.Cryptography.ECDiffieHellman Create();[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member Create : unit -> System.Security.Cryptography.ECDiffieHellmanstatic member Create : unit -> System.Security.Cryptography.ECDiffieHellmanPublic Shared Function Create () As ECDiffieHellmanReturns
A new instance of the default implementation of this class.
- Attributes
Applies to
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.
public:
 static System::Security::Cryptography::ECDiffieHellman ^ Create(System::Security::Cryptography::ECCurve curve);[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECCurve curve);public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECCurve curve);[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member Create : System.Security.Cryptography.ECCurve -> System.Security.Cryptography.ECDiffieHellmanstatic member Create : System.Security.Cryptography.ECCurve -> System.Security.Cryptography.ECDiffieHellmanPublic Shared Function Create (curve As ECCurve) As ECDiffieHellmanParameters
- curve
- ECCurve
The curve to use to generate a new public/private key-pair.
Returns
A new instance of the default implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm.
- Attributes
Exceptions
curve does not validate.
Remarks
curve must validate (that is, it must return true when passed to the ECCurve.Validate method.
Characteristic-2 curves are not supported on Windows.
See also
Applies to
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.
public:
 static System::Security::Cryptography::ECDiffieHellman ^ Create(System::Security::Cryptography::ECParameters parameters);[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECParameters parameters);public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECParameters parameters);[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member Create : System.Security.Cryptography.ECParameters -> System.Security.Cryptography.ECDiffieHellmanstatic member Create : System.Security.Cryptography.ECParameters -> System.Security.Cryptography.ECDiffieHellmanPublic Shared Function Create (parameters As ECParameters) As ECDiffieHellmanParameters
- parameters
- ECParameters
The parameters for the elliptic curve cryptography (ECC) algorithm.
Returns
A new instance of the default implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm.
- Attributes
Exceptions
parameters does not validate.
Remarks
parameters must validate (that is, it must return true) when passed to the ECParameters.Validate method. Parameters over implicit curves are not supported.
Characteristic-2 curves are not supported on Windows.
See also
Applies to
Create(String)
- Source:
- ECDiffieHellman.cs
- Source:
- ECDiffieHellman.cs
- Source:
- ECDiffieHellman.cs
- Source:
- ECDiffieHellman.cs
Caution
Cryptographic factory methods accepting an algorithm name are obsolete. Use the parameterless Create factory method on the algorithm type instead.
Creates a new instance of the specified implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm.
public:
 static System::Security::Cryptography::ECDiffieHellman ^ Create(System::String ^ algorithm);[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The default algorithm implementations might be removed, use strong type references like 'RSA.Create()' instead.")]
[System.Obsolete("Cryptographic factory methods accepting an algorithm name are obsolete. Use the parameterless Create factory method on the algorithm type instead.", DiagnosticId="SYSLIB0045", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static System.Security.Cryptography.ECDiffieHellman? Create(string algorithm);public static System.Security.Cryptography.ECDiffieHellman? Create(string algorithm);[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The default algorithm implementations might be removed, use strong type references like 'RSA.Create()' instead.")]
public static System.Security.Cryptography.ECDiffieHellman? Create(string algorithm);public static System.Security.Cryptography.ECDiffieHellman Create(string algorithm);[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The default algorithm implementations might be removed, use strong type references like 'RSA.Create()' instead.")>]
[<System.Obsolete("Cryptographic factory methods accepting an algorithm name are obsolete. Use the parameterless Create factory method on the algorithm type instead.", DiagnosticId="SYSLIB0045", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member Create : string -> System.Security.Cryptography.ECDiffieHellmanstatic member Create : string -> System.Security.Cryptography.ECDiffieHellman[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The default algorithm implementations might be removed, use strong type references like 'RSA.Create()' instead.")>]
static member Create : string -> System.Security.Cryptography.ECDiffieHellmanPublic Shared Function Create (algorithm As String) As ECDiffieHellmanParameters
- algorithm
- String
The name of an implementation of the ECDH algorithm.
Returns
A new instance of the specified implementation of this class. If the specified algorithm name does not map to an ECDH implementation, this method returns null.
- Attributes
Exceptions
The algorithm parameter is null.
Remarks
If you develop your own implementation of an ECDiffieHellman object, you can use the Create(String) method overload to create a custom algorithm string that specifies your implementation.
The algorithm parameter specifies the name of an implementation of the ECDH algorithm. The following strings all refer to the same implementation, which is the only implementation currently supported in the .NET Framework:
- "ECDH" 
- "ECDiffieHellman" 
- "ECDiffieHellmanCng" 
- "System.Security.Cryptography.ECDiffieHellmanCng" 
You can also provide the name of a custom ECDH implementation for the algorithm parameter. If you do that, the CryptoConfig object will use it to determine whether an ECDH object can be created.