Early Preview

This is currently very much a preview. Please feel free to try things out, but don't be upset if anything is not yet working. Feedback is welcome over on our GitHub Dicussions page.

class System.​Security.​Cryptography.​ECAlgorithm

Assembly: System.Security.Cryptography

Inheritance: object → AsymmetricAlgorithm → ECAlgorithm

Implemented Interfaces

Represents the abstract class from which elliptic-curve asymmetric algorithms can inherit.

Fields and Constants

protected int
KeySizeValue
Represents the size, in bits, of the key modulus used by the asymmetric algorithm.
protected KeySizes[]
LegalKeySizesValue
Specifies the key sizes that are supported by the asymmetric algorithm.

Properties

public string
KeyExchangeAlgorithm
When overridden in a derived class, gets the name of the key exchange algorithm. Otherwise, throws an <see cref="T:System.NotImplementedException" /> .
public int
KeySize
Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.
public KeySizes[]
LegalKeySizes
Gets the key sizes that are supported by the asymmetric algorithm.
public string
SignatureAlgorithm
When implemented in a derived class, gets the name of the signature algorithm. Otherwise, always throws a <see cref="T:System.NotImplementedException" /> .

Methods

public byte[]
ExportECPrivateKey​()
Exports the current key in the ECPrivateKey format.
Returns A byte array containing the ECPrivateKey representation of this key.
public string
ExportECPrivateKeyPem​()
Exports the current key in the ECPrivateKey format, PEM encoded.
Returns A string containing the PEM-encoded ECPrivateKey.
public ECParameters
ExportExplicitParameters​(bool includePrivateParameters)
When overridden in a derived class, exports the explicit <see cref="T:System.Security.Cryptography.ECParameters" /> for an ECCurve.
Returns The exported explicit parameters.
includePrivateParameters <see langword="true" /> to include private parameters, otherwise, <see langword="false" /> .
public ECParameters
ExportParameters​(bool includePrivateParameters)
When overridden in a derived class, exports the named or explicit <see cref="T:System.Security.Cryptography.ECParameters" /> for an ECCurve. If the curve has a name, the Curve property will contain named curve parameters otherwise it will contain explicit parameters.
Returns The exported parameters.
includePrivateParameters <see langword="true" /> to include private parameters, otherwise, <see langword="false" /> .
public void
GenerateKey​(ECCurve curve)
When overridden in a derived class, generates a new public/private keypair for the specified curve.
curve The curve to use.
public void
ImportECPrivateKey​(ReadOnlySpan<​byte> source, Int32& bytesRead)
public void
ImportEncryptedPkcs8PrivateKey​(ReadOnlySpan<​byte> passwordBytes, ReadOnlySpan<​byte> source, Int32& bytesRead)
public void
ImportEncryptedPkcs8PrivateKey​(ReadOnlySpan<​char> password, ReadOnlySpan<​byte> source, Int32& bytesRead)
public void
ImportFromEncryptedPem​(ReadOnlySpan<​char> input, ReadOnlySpan<​byte> passwordBytes)
Imports an encrypted RFC 7468 PEM-encoded private key, replacing the keys for this object.
input The PEM text of the encrypted key to import.
passwordBytes The bytes to use as a password when decrypting the key material.
public void
ImportFromEncryptedPem​(ReadOnlySpan<​char> input, ReadOnlySpan<​char> password)
Imports an encrypted RFC 7468 PEM-encoded private key, replacing the keys for this object.
input The PEM text of the encrypted key to import.
password The password to use for decrypting the key material.
public void
ImportFromPem​(ReadOnlySpan<​char> input)
Imports an RFC 7468 PEM-encoded key, replacing the keys for this object.
input The PEM text of the key to import.
public void
ImportParameters​(ECParameters parameters)
When overridden in a derived class, imports the specified <see cref="T:System.Security.Cryptography.ECParameters" /> .
parameters The curve parameters.
public void
ImportPkcs8PrivateKey​(ReadOnlySpan<​byte> source, Int32& bytesRead)
public void
ImportSubjectPublicKeyInfo​(ReadOnlySpan<​byte> source, Int32& bytesRead)
public bool
TryExportECPrivateKey​(Span<​byte> destination, Int32& bytesWritten)
public bool
TryExportECPrivateKeyPem​(Span<​char> destination, Int32& charsWritten)
public bool
TryExportEncryptedPkcs8PrivateKey​(ReadOnlySpan<​byte> passwordBytes, PbeParameters pbeParameters, Span<​byte> destination, Int32& bytesWritten)
public bool
TryExportEncryptedPkcs8PrivateKey​(ReadOnlySpan<​char> password, PbeParameters pbeParameters, Span<​byte> destination, Int32& bytesWritten)
public bool
TryExportPkcs8PrivateKey​(Span<​byte> destination, Int32& bytesWritten)
public bool
TryExportSubjectPublicKeyInfo​(Span<​byte> destination, Int32& bytesWritten)
public void
Clear​()
Inherited from AsymmetricAlgorithm
Releases all resources used by the <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> class.
public void
Dispose​()
Inherited from AsymmetricAlgorithm
Releases all resources used by the current instance of the <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> class.
protected void
Dispose​(bool disposing)
Inherited from AsymmetricAlgorithm
Releases the unmanaged resources used by the <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> class and optionally releases the managed resources.
disposing <see langword="true" /> to release both managed and unmanaged resources; <see langword="false" /> to release only unmanaged resources.
public byte[]
ExportEncryptedPkcs8PrivateKey​(ReadOnlySpan<​byte> passwordBytes, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.
Returns A byte array containing the PKCS#8 EncryptedPrivateKeyInfo representation of this key.
passwordBytes The bytes to use as a password when encrypting the key material.
pbeParameters The password-based encryption (PBE) parameters to use when encrypting the key material.
public byte[]
ExportEncryptedPkcs8PrivateKey​(ReadOnlySpan<​char> password, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.
Returns A byte array containing the PKCS#8 EncryptedPrivateKeyInfo representation of this key.
password The password to use when encrypting the key material.
pbeParameters The password-based encryption (PBE) parameters to use when encrypting the key material.
public string
ExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan<​byte> passwordBytes, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password, PEM encoded.
Returns A string containing the PEM-encoded PKCS#8 EncryptedPrivateKeyInfo.
passwordBytes The bytes to use as a password when encrypting the key material.
pbeParameters The password-based encryption (PBE) parameters to use when encrypting the key material.
public string
ExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan<​char> password, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password, PEM encoded.
Returns A string containing the PEM-encoded PKCS#8 EncryptedPrivateKeyInfo.
password The password to use when encrypting the key material.
pbeParameters The password-based encryption (PBE) parameters to use when encrypting the key material.
public byte[]
ExportPkcs8PrivateKey​()
Inherited from AsymmetricAlgorithm
Exports the current key in the PKCS#8 PrivateKeyInfo format.
Returns A byte array containing the PKCS#8 PrivateKeyInfo representation of this key.
public string
ExportPkcs8PrivateKeyPem​()
Inherited from AsymmetricAlgorithm
Exports the current key in the PKCS#8 PrivateKeyInfo format, PEM encoded.
Returns A string containing the PEM-encoded PKCS#8 PrivateKeyInfo.
public byte[]
ExportSubjectPublicKeyInfo​()
Inherited from AsymmetricAlgorithm
Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.
Returns A byte array containing the X.509 SubjectPublicKeyInfo representation of the public-key portion of this key.
public string
ExportSubjectPublicKeyInfoPem​()
Inherited from AsymmetricAlgorithm
Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format, PEM encoded.
Returns A string containing the PEM-encoded X.509 SubjectPublicKeyInfo.
public void
FromXmlString​(string xmlString)
Inherited from AsymmetricAlgorithm
When overridden in a derived class, reconstructs an <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object from an XML string. Otherwise, throws a <see cref="T:System.NotImplementedException" /> .
xmlString The XML string to use to reconstruct the <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object.
public string
ToXmlString​(bool includePrivateParameters)
Inherited from AsymmetricAlgorithm
When overridden in a derived class, creates and returns an XML string representation of the current <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object. Otherwise, throws a <see cref="T:System.NotImplementedException" /> .
Returns An XML string encoding of the current <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> object.
includePrivateParameters <see langword="true" /> to include private parameters; otherwise, <see langword="false" /> .
public bool
TryExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan<​byte> passwordBytes, PbeParameters pbeParameters, Span<​char> destination, Int32& charsWritten)
Inherited from AsymmetricAlgorithm
public bool
TryExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan<​char> password, PbeParameters pbeParameters, Span<​char> destination, Int32& charsWritten)
Inherited from AsymmetricAlgorithm
public bool
TryExportPkcs8PrivateKeyPem​(Span<​char> destination, Int32& charsWritten)
Inherited from AsymmetricAlgorithm
public bool
TryExportSubjectPublicKeyInfoPem​(Span<​char> destination, Int32& charsWritten)
Inherited from AsymmetricAlgorithm
public bool
Equals​(object obj)
Inherited from object
protected void
Finalize​()
Inherited from object
public int
GetHashCode​()
Inherited from object
public Type
GetType​()
Inherited from object
protected object
MemberwiseClone​()
Inherited from object
public string
ToString​()
Inherited from object