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

System.Security.Cryptography.SlhDsa

public abstract class SlhDsa : IDisposable
Represents an SLH-DSA key.
public static bool IsSupported { get; }

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

public SlhDsaAlgorithm Algorithm { get; }

Gets the specific SLH-DSA algorithm for this key.

protected SlhDsa(SlhDsaAlgorithm algorithm)

Initializes a new instance of the SlhDsa class.

public static SlhDsa GenerateKey(SlhDsaAlgorithm algorithm)

Generates a new SLH-DSA key for the specified algorithm.

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

Imports an SLH-DSA private key from a PKCS#8 EncryptedPrivateKeyInfo structure.

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

Imports an SLH-DSA private key from a PKCS#8 EncryptedPrivateKeyInfo structure.

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

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

Imports an SLH-DSA key from an encrypted RFC 7468 PEM-encoded string.

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

Imports an SLH-DSA key from an encrypted RFC 7468 PEM-encoded string.

public static SlhDsa ImportFromEncryptedPem(string source, string password)

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

public static SlhDsa ImportFromPem(ReadOnlySpan<char> source)

Imports an SLH-DSA key from an RFC 7468 PEM-encoded string.

public static SlhDsa ImportFromPem(string source)

public static SlhDsa ImportPkcs8PrivateKey(ReadOnlySpan<byte> source)

Imports an SLH-DSA private key from a PKCS#8 PrivateKeyInfo structure.

public static SlhDsa ImportPkcs8PrivateKey(byte[] source)

public static SlhDsa ImportSlhDsaPrivateKey(SlhDsaAlgorithm algorithm, ReadOnlySpan<byte> source)

Imports an SLH-DSA private key in the FIPS 205 private key format.

public static SlhDsa ImportSlhDsaPrivateKey(SlhDsaAlgorithm algorithm, byte[] source)

public static SlhDsa ImportSlhDsaPublicKey(SlhDsaAlgorithm algorithm, ReadOnlySpan<byte> source)

Imports an SLH-DSA public key in the FIPS 205 public key format.

public static SlhDsa ImportSlhDsaPublicKey(SlhDsaAlgorithm algorithm, byte[] source)

public static SlhDsa ImportSubjectPublicKeyInfo(ReadOnlySpan<byte> source)

Imports an SLH-DSA public key from an X.509 SubjectPublicKeyInfo structure.

public static SlhDsa ImportSubjectPublicKeyInfo(byte[] source)

public void Dispose()

Releases all resources used by the SlhDsa class.

protected virtual void Dispose(bool disposing)

Called by the Dispose() and Finalize() methods to release the managed and unmanaged resources used by the current instance of the SlhDsa class.

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

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

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(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 string ExportEncryptedPkcs8PrivateKeyPem(string password, PbeParameters pbeParameters)

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.

public void ExportSlhDsaPrivateKey(Span<byte> destination)

Exports the current key in the FIPS 205 private key format.

public byte[] ExportSlhDsaPrivateKey()

Exports the current key in the FIPS 205 private key format.

protected abstract void ExportSlhDsaPrivateKeyCore(Span<byte> destination)

When overridden in a derived class, exports the FIPS 205 private key to the specified buffer.

public void ExportSlhDsaPublicKey(Span<byte> destination)

Exports the public-key portion of the current key in the FIPS 205 public key format.

public byte[] ExportSlhDsaPublicKey()

Exports the public-key portion of the current key in the FIPS 205 public key format.

protected abstract void ExportSlhDsaPublicKeyCore(Span<byte> destination)

When overridden in a derived class, exports the FIPS 205 public key to the specified buffer.

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 void SignData(ReadOnlySpan<byte> data, Span<byte> destination, ReadOnlySpan<byte> context = default)

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

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

Signs the specified data.

protected abstract void 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 void SignPreHash(ReadOnlySpan<byte> hash, Span<byte> destination, string hashAlgorithmOid, ReadOnlySpan<byte> context = default)

Signs the specified hash using the FIPS 205 pre-hash signing algorithm, writing the signature into the provided buffer.

public byte[] SignPreHash(byte[] hash, string hashAlgorithmOid, byte[] context = null)

Signs the specified hash using the FIPS 205 pre-hash signing algorithm.

protected abstract void SignPreHashCore(ReadOnlySpan<byte> hash, ReadOnlySpan<byte> context, string hashAlgorithmOid, Span<byte> destination)

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

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 TryExportEncryptedPkcs8PrivateKey(string password, PbeParameters pbeParameters, Span<byte> destination, out int bytesWritten)

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 virtual 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(ReadOnlySpan<byte> data, ReadOnlySpan<byte> signature, ReadOnlySpan<byte> context = default)

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

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

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.

public bool VerifyPreHash(ReadOnlySpan<byte> hash, ReadOnlySpan<byte> signature, string hashAlgorithmOid, ReadOnlySpan<byte> context = default)

Verifies that the specified FIPS 205 pre-hash signature is valid for this key and the provided hash.

public bool VerifyPreHash(byte[] hash, byte[] signature, string hashAlgorithmOid, byte[] context = null)

Verifies that the specified FIPS 205 pre-hash signature is valid for this key and the provided hash.

protected abstract bool VerifyPreHashCore(ReadOnlySpan<byte> hash, ReadOnlySpan<byte> context, string hashAlgorithmOid, ReadOnlySpan<byte> signature)

When overridden in a derived class, verifies the pre-hash signature of the specified hash and context.