RSA.TrySignHash Method

Definition

Attempts to sign the hash with the current key, writing the signature into a provided buffer.

C#
public virtual bool TrySignHash(ReadOnlySpan<byte> hash, Span<byte> destination, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, System.Security.Cryptography.RSASignaturePadding padding, out int bytesWritten);

Parameters

hash
ReadOnlySpan<Byte>

The hash value of the data to be signed.

destination
Span<Byte>

The buffer to receive the RSA signature.

hashAlgorithm
HashAlgorithmName

The hash algorithm used to create the hash value of the data.

padding
RSASignaturePadding

The padding.

bytesWritten
Int32

When this method returns, the total number of bytes written into destination. This parameter is treated as uninitialized.

Returns

true if destination is long enough to receive the RSA signature; otherwise, false.

Exceptions

padding is null.

hashAlgorithm.Name is null or Empty.

padding is unknown, or not supported by this implementation.

-or-

This instance represents only a public key.

-or-

An error occurred creating the signature.

Remarks

The default implementation of this method calls SignHash(Byte[], HashAlgorithmName, RSASignaturePadding) and copies the result to destination. Derived types should override this method to avoid the intermediate array creation.

The RSA signature algorithm will always produce an output equal to the number of bytes required for KeySize bits.

Applies to

Product Versions
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.1

See also