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.​RSACryptoServiceProvider

Assembly: System.Security.Cryptography

Inheritance: object → AsymmetricAlgorithmRSA → RSACryptoServiceProvider

Performs asymmetric encryption and decryption using the implementation of the <see cref="T:System.Security.Cryptography.RSA" /> algorithm provided by the cryptographic service provider (CSP). This class cannot be inherited.

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

CspKeyContainerInfo
Gets a <see cref="T:System.Security.Cryptography.CspKeyContainerInfo" /> object that describes additional information about a cryptographic key pair.
public string
KeyExchangeAlgorithm
Gets the name of the key exchange algorithm available with this implementation of <see cref="T:System.Security.Cryptography.RSA" /> .
public int
KeySize
Gets the size of the current key.
public KeySizes[]
LegalKeySizes
Gets the key sizes that are supported by the asymmetric algorithm.
public bool
PersistKeyInCsp
Gets or sets a value indicating whether the key should be persisted in the cryptographic service provider (CSP).
public bool
PublicOnly
Gets a value that indicates whether the <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object contains only a public key.
public string
SignatureAlgorithm
Gets the name of the signature algorithm available with this implementation of <see cref="T:System.Security.Cryptography.RSA" /> .

Methods

public byte[]
Decrypt​(byte[] rgb, bool fOAEP)
rgb The data to be decrypted.
fOAEP <see langword="true" /> to perform direct <see cref="T:System.Security.Cryptography.RSA" /> decryption using OAEP padding; otherwise, <see langword="false" /> to use PKCS#1 v1.5 padding.
Returns The decrypted data, which is the original plain text before encryption.
Decrypts data with the <see cref="T:System.Security.Cryptography.RSA" /> algorithm.
public byte[]
Decrypt​(byte[] data, RSAEncryptionPadding padding)
data The data to decrypt.
padding The padding.
Returns The decrypted data.
Decrypts data that was previously encrypted with the <see cref="T:System.Security.Cryptography.RSA" /> algorithm by using the specified padding.
public byte[]
DecryptValue​(byte[] rgb)
rgb The data to be decrypted.
Returns The decrypted data, which is the original plain text before encryption.
This method is not supported in the current version.
protected void
Dispose​(bool disposing)
public byte[]
Encrypt​(byte[] rgb, bool fOAEP)
rgb The data to be encrypted.
fOAEP <see langword="true" /> to perform direct <see cref="T:System.Security.Cryptography.RSA" /> encryption using OAEP padding (only available on a computer running Windows XP or later); otherwise, <see langword="false" /> to use PKCS#1 v1.5 padding.
Returns The encrypted data.
Encrypts data with the <see cref="T:System.Security.Cryptography.RSA" /> algorithm.
public byte[]
Encrypt​(byte[] data, RSAEncryptionPadding padding)
data The data to encrypt.
padding The padding.
Returns The encrypted data.
Encrypts data with the <see cref="T:System.Security.Cryptography.RSA" /> algorithm using the specified padding.
public byte[]
EncryptValue​(byte[] rgb)
rgb The data to be encrypted.
Returns The encrypted data.
This method is not supported in the current version.
public byte[]
ExportCspBlob​(bool includePrivateParameters)
includePrivateParameters <see langword="true" /> to include the private key; otherwise, <see langword="false" /> .
Returns A byte array containing the key information associated with an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object.
Exports a blob containing the key information associated with an <see cref="T:System.Security.Cryptography.RSACryptoServiceProvider" /> object.
public RSAParameters
ExportParameters​(bool includePrivateParameters)
includePrivateParameters <see langword="true" /> to include private parameters; otherwise, <see langword="false" /> .
Returns The parameters for <see cref="T:System.Security.Cryptography.RSA" /> .
Exports the <see cref="T:System.Security.Cryptography.RSAParameters" /> .
public void
ImportCspBlob​(byte[] keyBlob)
keyBlob A byte array that represents an RSA key blob.
Imports a blob that represents RSA key information.
public void
ImportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 passwordBytes, ReadOnlySpan`1 source, Int32& bytesRead)
public void
ImportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 password, ReadOnlySpan`1 source, Int32& bytesRead)
public void
ImportParameters​(RSAParameters parameters)
parameters The parameters for <see cref="T:System.Security.Cryptography.RSA" /> .
Imports the specified <see cref="T:System.Security.Cryptography.RSAParameters" /> .
public byte[]
SignData​(byte[] buffer, int offset, int count, object halg)
buffer The input data to hash and sign.
offset The offset into the array from which to begin using data.
count The number of bytes in the array to use as data.
halg The hash algorithm to use to create the hash value.
Returns The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified data.
Computes the hash value of a subset of the specified byte array using the specified hash algorithm, and signs the resulting hash value.
public byte[]
SignData​(byte[] buffer, object halg)
buffer The input data to hash and sign.
halg The hash algorithm to use to create the hash value.
Returns The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified data.
Computes the hash value of the specified byte array using the specified hash algorithm, and signs the resulting hash value.
public byte[]
SignData​(IO.Stream inputStream, object halg)
inputStream The input stream to hash and sign.
halg The hash algorithm to use to create the hash value.
Returns The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified data.
Computes the hash value of the specified input stream using the specified hash algorithm, and signs the resulting hash value.
public byte[]
SignHash​(byte[] hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
hash The hash value of the data to be signed.
hashAlgorithm The hash algorithm name used to create the hash value of the data.
padding The padding.
Returns The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified hash value.
Computes the signature for the specified hash value using the specified padding.
public byte[]
SignHash​(byte[] rgbHash, string str)
rgbHash The hash value of the data to be signed.
str The hash algorithm identifier (OID) used to create the hash value of the data.
Returns The <see cref="T:System.Security.Cryptography.RSA" /> signature for the specified hash value.
Computes the signature for the specified hash value.
public bool
VerifyData​(byte[] buffer, object halg, byte[] signature)
buffer The data that was signed.
halg The name of the hash algorithm used to create the hash value of the data.
signature The signature data to be verified.
Returns <see langword="true" /> if the signature is valid; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data.
public bool
VerifyHash​(byte[] hash, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
hash The hash value of the signed data.
signature The signature data to be verified.
hashAlgorithm The hash algorithm name used to create the hash value.
padding The padding.
Returns <see langword="true" /> if the signature is valid; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid by determining the hash value in the signature using the specified hashing algorithm and padding, and comparing it to the provided hash value.
public bool
VerifyHash​(byte[] rgbHash, string str, byte[] rgbSignature)
rgbHash The hash value of the signed data.
str The hash algorithm identifier (OID) used to create the hash value of the data.
rgbSignature The signature data to be verified.
Returns <see langword="true" /> if the signature is valid; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the provided hash value.
public byte[]
Decrypt​(ReadOnlySpan`1 data, RSAEncryptionPadding padding)
Inherited from RSA
public int
Decrypt​(ReadOnlySpan`1 data, Span`1 destination, RSAEncryptionPadding padding)
Inherited from RSA
public byte[]
Encrypt​(ReadOnlySpan`1 data, RSAEncryptionPadding padding)
Inherited from RSA
public int
Encrypt​(ReadOnlySpan`1 data, Span`1 destination, RSAEncryptionPadding padding)
Inherited from RSA
public byte[]
ExportRSAPrivateKey​()
Inherited from RSA
Returns A byte array containing the PKCS#1 RSAPrivateKey representation of this key.
Exports the current key in the PKCS#1 RSAPrivateKey format.
public string
ExportRSAPrivateKeyPem​()
Inherited from RSA
Returns A string containing the PEM-encoded PKCS#1 RSAPrivateKey.
Exports the current key in the PKCS#1 RSAPrivateKey format, PEM encoded.
public byte[]
ExportRSAPublicKey​()
Inherited from RSA
Returns A byte array containing the PKCS#1 RSAPublicKey representation of this key.
Exports the public-key portion of the current key in the PKCS#1 RSAPublicKey format.
public string
ExportRSAPublicKeyPem​()
Inherited from RSA
Returns A string containing the PEM-encoded PKCS#1 RSAPublicKey.
Exports the public-key portion of the current key in the PKCS#1 RSAPublicKey format, PEM encoded.
public void
FromXmlString​(string xmlString)
Inherited from RSA
xmlString The XML string containing <see cref="T:System.Security.Cryptography.RSA" /> key information.
Initializes an <see cref="T:System.Security.Cryptography.RSA" /> object from the key information from an XML string.
public int
GetMaxOutputSize​()
Inherited from RSA
Returns The maximum number of bytes an RSA operation can produce.
Gets the maximum number of bytes an RSA operation can produce.
protected byte[]
HashData​(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm)
Inherited from RSA
data The data to be hashed.
offset The index of the first byte in <paramref name="data" /> that is to be hashed.
count The number of bytes to hash.
hashAlgorithm The algorithm to use in hash the data.
Returns The hashed data.
When overridden in a derived class, computes the hash value of a specified portion of a byte array by using a specified hashing algorithm.
protected byte[]
HashData​(IO.Stream data, HashAlgorithmName hashAlgorithm)
Inherited from RSA
data The binary stream to hash.
hashAlgorithm The hash algorithm.
Returns The hashed data.
When overridden in a derived class, computes the hash value of a specified binary stream by using a specified hashing algorithm.
public void
ImportFromEncryptedPem​(ReadOnlySpan`1 input, ReadOnlySpan`1 passwordBytes)
Inherited from RSA
public void
ImportFromEncryptedPem​(ReadOnlySpan`1 input, ReadOnlySpan`1 password)
Inherited from RSA
public void
ImportFromPem​(ReadOnlySpan`1 input)
Inherited from RSA
public void
ImportPkcs8PrivateKey​(ReadOnlySpan`1 source, Int32& bytesRead)
Inherited from RSA
public void
ImportRSAPrivateKey​(ReadOnlySpan`1 source, Int32& bytesRead)
Inherited from RSA
public void
ImportRSAPublicKey​(ReadOnlySpan`1 source, Int32& bytesRead)
Inherited from RSA
public void
ImportSubjectPublicKeyInfo​(ReadOnlySpan`1 source, Int32& bytesRead)
Inherited from RSA
public byte[]
SignData​(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
data The input data to hash and sign.
offset The offset into the array at which to begin using data.
count The number of bytes in the array to use as data.
hashAlgorithm The hash algorithm to use to create the hash value.
padding The padding mode.
Returns The RSA signature for the specified data.
Computes the hash value of a portion of the specified byte array using the specified hash algorithm and padding mode, and signs the resulting hash value.
public byte[]
SignData​(byte[] data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
data The input data to hash and sign.
hashAlgorithm The hash algorithm to use to create the hash value.
padding The padding mode.
Returns The RSA signature for the specified data.
Computes the hash value of the specified byte array using the specified hash algorithm and padding mode, and signs the resulting hash value.
public byte[]
SignData​(IO.Stream data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
data The input stream to hash and sign.
hashAlgorithm The hash algorithm to use to create the hash value.
padding The padding mode.
Returns The RSA signature for the specified data.
Computes the hash value of the specified stream using the specified hash algorithm and padding mode, and signs the resulting hash value.
public byte[]
SignData​(ReadOnlySpan`1 data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
public int
SignData​(ReadOnlySpan`1 data, Span`1 destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
public byte[]
SignHash​(ReadOnlySpan`1 hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
public int
SignHash​(ReadOnlySpan`1 hash, Span`1 destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
public string
ToXmlString​(bool includePrivateParameters)
Inherited from RSA
includePrivateParameters <see langword="true" /> to include a public and private RSA key; <see langword="false" /> to include only the public key.
Returns An XML string containing the key of the current <see cref="T:System.Security.Cryptography.RSA" /> object.
Creates and returns an XML string containing the key of the current <see cref="T:System.Security.Cryptography.RSA" /> object.
public bool
TryDecrypt​(ReadOnlySpan`1 data, Span`1 destination, RSAEncryptionPadding padding, Int32& bytesWritten)
Inherited from RSA
public bool
TryEncrypt​(ReadOnlySpan`1 data, Span`1 destination, RSAEncryptionPadding padding, Int32& bytesWritten)
Inherited from RSA
public bool
TryExportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 passwordBytes, PbeParameters pbeParameters, Span`1 destination, Int32& bytesWritten)
Inherited from RSA
public bool
TryExportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 password, PbeParameters pbeParameters, Span`1 destination, Int32& bytesWritten)
Inherited from RSA
public bool
TryExportPkcs8PrivateKey​(Span`1 destination, Int32& bytesWritten)
Inherited from RSA
public bool
TryExportRSAPrivateKey​(Span`1 destination, Int32& bytesWritten)
Inherited from RSA
public bool
TryExportRSAPrivateKeyPem​(Span`1 destination, Int32& charsWritten)
Inherited from RSA
public bool
TryExportRSAPublicKey​(Span`1 destination, Int32& bytesWritten)
Inherited from RSA
public bool
TryExportRSAPublicKeyPem​(Span`1 destination, Int32& charsWritten)
Inherited from RSA
public bool
TryExportSubjectPublicKeyInfo​(Span`1 destination, Int32& bytesWritten)
Inherited from RSA
protected bool
TryHashData​(ReadOnlySpan`1 data, Span`1 destination, HashAlgorithmName hashAlgorithm, Int32& bytesWritten)
Inherited from RSA
public bool
TrySignData​(ReadOnlySpan`1 data, Span`1 destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, Int32& bytesWritten)
Inherited from RSA
public bool
TrySignHash​(ReadOnlySpan`1 hash, Span`1 destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, Int32& bytesWritten)
Inherited from RSA
public bool
VerifyData​(byte[] data, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
data The signed data.
signature The signature data to be verified.
hashAlgorithm The hash algorithm used to create the hash value of the data.
padding The padding mode.
Returns <see langword="true" /> if the signature is valid; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid by calculating the hash value of the specified data using the specified hash algorithm and padding, and comparing it to the provided signature.
public bool
VerifyData​(byte[] data, int offset, int count, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
data The signed data.
offset The starting index at which to compute the hash.
count The number of bytes to hash.
signature The signature data to be verified.
hashAlgorithm The hash algorithm used to create the hash value of the data.
padding The padding mode.
Returns <see langword="true" /> if the signature is valid; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid by calculating the hash value of the data in a portion of a byte array using the specified hash algorithm and padding, and comparing it to the provided signature.
public bool
VerifyData​(IO.Stream data, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
data The signed data.
signature The signature data to be verified.
hashAlgorithm The hash algorithm used to create the hash value of the data.
padding The padding mode.
Returns <see langword="true" /> if the signature is valid; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid by calculating the hash value of the specified stream using the specified hash algorithm and padding, and comparing it to the provided signature.
public bool
VerifyData​(ReadOnlySpan`1 data, ReadOnlySpan`1 signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
public bool
VerifyHash​(ReadOnlySpan`1 hash, ReadOnlySpan`1 signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
Inherited from RSA
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.
public byte[]
ExportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 passwordBytes, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
public byte[]
ExportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 password, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
public string
ExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan`1 passwordBytes, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
public string
ExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan`1 password, PbeParameters pbeParameters)
Inherited from AsymmetricAlgorithm
public byte[]
ExportPkcs8PrivateKey​()
Inherited from AsymmetricAlgorithm
Returns A byte array containing the PKCS#8 PrivateKeyInfo representation of this key.
Exports the current key in the PKCS#8 PrivateKeyInfo format.
public string
ExportPkcs8PrivateKeyPem​()
Inherited from AsymmetricAlgorithm
Returns A string containing the PEM-encoded PKCS#8 PrivateKeyInfo.
Exports the current key in the PKCS#8 PrivateKeyInfo format, PEM encoded.
public byte[]
ExportSubjectPublicKeyInfo​()
Inherited from AsymmetricAlgorithm
Returns A byte array containing the X.509 SubjectPublicKeyInfo representation of the public-key portion of this key.
Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.
public string
ExportSubjectPublicKeyInfoPem​()
Inherited from AsymmetricAlgorithm
Returns A string containing the PEM-encoded X.509 SubjectPublicKeyInfo.
Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format, PEM encoded.
public bool
TryExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan`1 passwordBytes, PbeParameters pbeParameters, Span`1 destination, Int32& charsWritten)
Inherited from AsymmetricAlgorithm
public bool
TryExportEncryptedPkcs8PrivateKeyPem​(ReadOnlySpan`1 password, PbeParameters pbeParameters, Span`1 destination, Int32& charsWritten)
Inherited from AsymmetricAlgorithm
public bool
TryExportPkcs8PrivateKeyPem​(Span`1 destination, Int32& charsWritten)
Inherited from AsymmetricAlgorithm
public bool
TryExportSubjectPublicKeyInfoPem​(Span`1 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