ECDiffieHellman.Create Method

Definition

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()

Source:
ECDiffieHellman.Create.OpenSsl.cs
Source:
ECDiffieHellman.Create.OpenSsl.cs
Source:
ECDiffieHellman.Create.OpenSsl.cs

Creates a new instance of the default implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm.

C#
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Security.Cryptography.ECDiffieHellman Create();
C#
public static System.Security.Cryptography.ECDiffieHellman Create();

Returns

A new instance of the default implementation of this class.

Attributes

Applies to

.NET 10 and other versions
Product Versions
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.1

Create(ECCurve)

Source:
ECDiffieHellman.Create.OpenSsl.cs
Source:
ECDiffieHellman.Create.OpenSsl.cs
Source:
ECDiffieHellman.Create.OpenSsl.cs

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.

C#
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECCurve curve);
C#
public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECCurve curve);

Parameters

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

.NET 10 and other versions
Product Versions
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.1

Create(ECParameters)

Source:
ECDiffieHellman.Create.OpenSsl.cs
Source:
ECDiffieHellman.Create.OpenSsl.cs
Source:
ECDiffieHellman.Create.OpenSsl.cs

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.

C#
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECParameters parameters);
C#
public static System.Security.Cryptography.ECDiffieHellman Create(System.Security.Cryptography.ECParameters parameters);

Parameters

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

.NET 10 and other versions
Product Versions
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.1

Create(String)

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.

C#
[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);
C#
public static System.Security.Cryptography.ECDiffieHellman? Create(string algorithm);
C#
public static System.Security.Cryptography.ECDiffieHellman Create(string algorithm);

Parameters

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.

Applies to

.NET 10 and other versions
Product Versions (Obsolete)
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6 (7, 8, 9, 10)
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.1