System.Security.Cryptography.SlhDsa
Represents an SLH-DSA key.
Gets a value indicating whether the current platform supports SLH-DSA.
Gets the specific SLH-DSA algorithm for this key.
Initializes a new instance of the SlhDsa class.
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.
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.
Imports an SLH-DSA key from an RFC 7468 PEM-encoded string.
Imports an SLH-DSA private key from a PKCS#8 PrivateKeyInfo structure.
Imports an SLH-DSA private key in the FIPS 205 private key format.
Imports an SLH-DSA public key in the FIPS 205 public key format.
Imports an SLH-DSA public key from an X.509 SubjectPublicKeyInfo structure.
Releases all resources used by the SlhDsa class.
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 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.
Exports the current key in the PKCS#8 PrivateKeyInfo format.
Exports the current key in a PEM-encoded representation of the PKCS#8 PrivateKeyInfo format.
Exports the current key in the FIPS 205 private key format.
Exports the current key in the FIPS 205 private key format.
When overridden in a derived class, exports the FIPS 205 private key to the specified buffer.
Exports the public-key portion of the current key in the FIPS 205 public key format.
Exports the public-key portion of the current key in the FIPS 205 public key format.
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.
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.
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)
Attempts to export the current key in the PKCS#8 PrivateKeyInfo format
into the provided buffer.
When overridden in a derived class, attempts to export the current key in the PKCS#8 PrivateKeyInfo format
into the provided buffer.
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.
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.