<PackageReference Include="Microsoft.Bcl.Cryptography" Version="10.0.10" />

System.Security.Cryptography.CompositeMLDsa

public abstract class CompositeMLDsa : IDisposable
Represents a Composite ML-DSA key.
public static bool IsSupported { get; }

Gets a value indicating whether the current platform supports Composite ML-DSA.

Gets the specific Composite ML-DSA algorithm for this key.

Initializes a new instance of the CompositeMLDsa class.

Generates a new Composite ML-DSA key.

Imports a Composite ML-DSA private key.

Imports a Composite ML-DSA public key.

public static CompositeMLDsa ImportEncryptedPkcs8PrivateKey(string password, byte[] source)

public static CompositeMLDsa ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<char> password, ReadOnlySpan<byte> source)

Imports a Composite ML-DSA private key from a PKCS#8 EncryptedPrivateKeyInfo structure.

public static CompositeMLDsa ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<byte> passwordBytes, ReadOnlySpan<byte> source)

Imports a Composite ML-DSA private key from a PKCS#8 EncryptedPrivateKeyInfo structure.

public static CompositeMLDsa ImportFromEncryptedPem(string source, string password)

public static CompositeMLDsa ImportFromEncryptedPem(ReadOnlySpan<char> source, ReadOnlySpan<char> password)

Imports a Composite ML-DSA key from an encrypted RFC 7468 PEM-encoded string.

public static CompositeMLDsa ImportFromEncryptedPem(string source, byte[] passwordBytes)

public static CompositeMLDsa ImportFromEncryptedPem(ReadOnlySpan<char> source, ReadOnlySpan<byte> passwordBytes)

Imports a Composite ML-DSA key from an encrypted RFC 7468 PEM-encoded string.

public static CompositeMLDsa ImportFromPem(string source)

public static CompositeMLDsa ImportFromPem(ReadOnlySpan<char> source)

Imports a Composite ML-DSA key from an RFC 7468 PEM-encoded string.

public static CompositeMLDsa ImportPkcs8PrivateKey(byte[] source)

Imports a Composite ML-DSA private key from a PKCS#8 PrivateKeyInfo structure.

public static CompositeMLDsa ImportSubjectPublicKeyInfo(byte[] source)

Imports a Composite ML-DSA public key from an X.509 SubjectPublicKeyInfo structure.

public static bool IsAlgorithmSupported(CompositeMLDsaAlgorithm algorithm)

Determines whether the specified algorithm is supported by the current platform.

public void Dispose()

Releases all resources used by the CompositeMLDsa class.

protected virtual void Dispose(bool disposing)

Called by the Dispose method to release the managed and unmanaged resources used by the current instance of the CompositeMLDsa class.

Exports the private-key portion of the current key.

public int ExportCompositeMLDsaPrivateKey(Span<byte> destination)

Exports the private-key portion of the current key into the provided buffer.

protected abstract int ExportCompositeMLDsaPrivateKeyCore(Span<byte> destination)

When overridden in a derived class, exports the private key portion of the current key.

Exports the public-key portion of the current key.

public int ExportCompositeMLDsaPublicKey(Span<byte> destination)

Exports the public-key portion of the current key into the provided buffer.

protected abstract int ExportCompositeMLDsaPublicKeyCore(Span<byte> destination)

When overridden in a derived class, exports the public key portion of the current key.

public byte[] ExportEncryptedPkcs8PrivateKey(string password, PbeParameters pbeParameters)

public byte[] ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<byte> passwordBytes, PbeParameters pbeParameters)

Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.

public byte[] ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<char> password, PbeParameters pbeParameters)

Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.

public string ExportEncryptedPkcs8PrivateKeyPem(string password, PbeParameters pbeParameters)

public string ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<char> password, PbeParameters pbeParameters)

Exports the current key in a PEM-encoded representation of the PKCS#8 EncryptedPrivateKeyInfo representation of this key, using a char-based password.

public string ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<byte> passwordBytes, PbeParameters pbeParameters)

Exports the current key in a PEM-encoded representation of the PKCS#8 EncryptedPrivateKeyInfo representation of this key, using a byte-based password.

public byte[] ExportPkcs8PrivateKey()

Exports the current key in the PKCS#8 PrivateKeyInfo format.

public string ExportPkcs8PrivateKeyPem()

Exports the current key in a PEM-encoded representation of the PKCS#8 PrivateKeyInfo format.

Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.

Exports the public-key portion of the current key in a PEM-encoded representation of the X.509 SubjectPublicKeyInfo format.

public byte[] SignData(byte[] data, byte[] context = null)

Signs the specified data.

public int SignData(ReadOnlySpan<byte> data, Span<byte> destination, ReadOnlySpan<byte> context = default)

Signs the specified data, writing the signature into the provided buffer.

protected abstract int SignDataCore(ReadOnlySpan<byte> data, ReadOnlySpan<byte> context, Span<byte> destination)

When overridden in a derived class, computes the signature of the specified data and context, writing it into the provided buffer.

public bool TryExportCompositeMLDsaPrivateKey(Span<byte> destination, out int bytesWritten)

Attempts to export private key portion of the current key into the provided buffer.

public bool TryExportCompositeMLDsaPublicKey(Span<byte> destination, out int bytesWritten)

Attempts to export public key portion of the current key into the provided buffer.

public bool TryExportEncryptedPkcs8PrivateKey(string password, PbeParameters pbeParameters, Span<byte> destination, out int bytesWritten)

public bool TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<char> password, PbeParameters pbeParameters, Span<byte> destination, out int bytesWritten)

Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a char-based password.

public bool TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<byte> passwordBytes, PbeParameters pbeParameters, Span<byte> destination, out int bytesWritten)

Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a byte-based password.

public bool TryExportPkcs8PrivateKey(Span<byte> destination, out int bytesWritten)

Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into the provided buffer.

protected abstract bool TryExportPkcs8PrivateKeyCore(Span<byte> destination, out int bytesWritten)

When overridden in a derived class, attempts to export the current key in the PKCS#8 PrivateKeyInfo format into the provided buffer.

public bool TryExportSubjectPublicKeyInfo(Span<byte> destination, out int bytesWritten)

Attempts to export the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format into the provided buffer.

public bool VerifyData(byte[] data, byte[] signature, byte[] context = null)

Verifies that the specified signature is valid for this key and the provided data.

public bool VerifyData(ReadOnlySpan<byte> data, ReadOnlySpan<byte> signature, ReadOnlySpan<byte> context = default)

Verifies that the specified signature is valid for this key and the provided data.

protected abstract bool VerifyDataCore(ReadOnlySpan<byte> data, ReadOnlySpan<byte> context, ReadOnlySpan<byte> signature)

When overridden in a derived class, verifies the signature of the specified data and context.