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

Assembly: System.Security.Cryptography

Inheritance: object → AsymmetricAlgorithmDSA → DSACryptoServiceProvider

Defines a wrapper object to access the cryptographic service provider (CSP) implementation of the <see cref="T:System.Security.Cryptography.DSA" /> algorithm. 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.
public int
KeySize
Gets the size of the key used by the asymmetric algorithm in bits.
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.DSACryptoServiceProvider" /> object contains only a public key.
public string
SignatureAlgorithm
Gets the name of the signature algorithm.

Methods

public byte[]
CreateSignature​(byte[] rgbHash)
rgbHash The data to be signed.
Returns The digital signature for the specified data.
Creates the <see cref="T:System.Security.Cryptography.DSA" /> signature for the specified data.
protected void
Dispose​(bool disposing)
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 a <see cref="T:System.Security.Cryptography.DSACryptoServiceProvider" /> object.
Exports a blob containing the key information associated with a <see cref="T:System.Security.Cryptography.DSACryptoServiceProvider" /> object.
public DSAParameters
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.DSA" /> .
Exports the <see cref="T:System.Security.Cryptography.DSAParameters" /> .
protected byte[]
HashData​(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm)
protected byte[]
HashData​(IO.Stream data, HashAlgorithmName hashAlgorithm)
public void
ImportCspBlob​(byte[] keyBlob)
keyBlob A byte array that represents a DSA key blob.
Imports a blob that represents DSA 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​(DSAParameters parameters)
parameters The parameters for <see cref="T:System.Security.Cryptography.DSA" /> .
Imports the specified <see cref="T:System.Security.Cryptography.DSAParameters" /> .
public byte[]
SignData​(byte[] buffer)
buffer The input data for which to compute the hash.
Returns The <see cref="T:System.Security.Cryptography.DSA" /> signature for the specified data.
Computes the hash value of the specified byte array and signs the resulting hash value.
public byte[]
SignData​(byte[] buffer, int offset, int count)
buffer The input data to 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.
Returns The <see cref="T:System.Security.Cryptography.DSA" /> signature for the specified data.
Signs a byte array from the specified start point to the specified end point.
public byte[]
SignData​(IO.Stream inputStream)
inputStream The input data for which to compute the hash.
Returns The <see cref="T:System.Security.Cryptography.DSA" /> signature for the specified data.
Computes the hash value of the specified input stream and signs the resulting hash value.
public byte[]
SignHash​(byte[] rgbHash, string str)
rgbHash The hash value of the data to be signed.
str The name of the hash algorithm used to create the hash value of the data.
Returns The <see cref="T:System.Security.Cryptography.DSA" /> signature for the specified hash value.
Computes the signature for the specified hash value by encrypting it with the private key.
public bool
VerifyData​(byte[] rgbData, byte[] rgbSignature)
rgbData The data that was signed.
rgbSignature The signature data to be verified.
Returns <see langword="true" /> if the signature verifies as valid; otherwise, <see langword="false" /> .
Verifies the specified signature data by comparing it to the signature computed for the specified data.
public bool
VerifyHash​(byte[] rgbHash, string str, byte[] rgbSignature)
rgbHash The hash value of the data to be signed.
str The name of the hash algorithm used to create the hash value of the data.
rgbSignature The signature data to be verified.
Returns <see langword="true" /> if the signature verifies as valid; otherwise, <see langword="false" /> .
Verifies the specified signature data by comparing it to the signature computed for the specified hash value.
public bool
VerifySignature​(byte[] rgbHash, byte[] rgbSignature)
rgbHash The data signed with <paramref name="rgbSignature" /> .
rgbSignature The signature to be verified for <paramref name="rgbHash" /> .
Returns <see langword="true" /> if <paramref name="rgbSignature" /> matches the signature computed using the specified hash algorithm and key on <paramref name="rgbHash" /> ; otherwise, <see langword="false" /> .
Verifies the <see cref="T:System.Security.Cryptography.DSA" /> signature for the specified data.
public byte[]
CreateSignature​(byte[] rgbHash, DSASignatureFormat signatureFormat)
Inherited from DSA
rgbHash The hash value to sign.
signatureFormat The encoding format to use for the signature.
Returns The DSA signature for the specified data.
Creates the DSA signature for the specified hash value in the indicated format.
protected byte[]
CreateSignatureCore​(ReadOnlySpan`1 hash, DSASignatureFormat signatureFormat)
Inherited from DSA
public void
FromXmlString​(string xmlString)
Inherited from DSA
xmlString The XML string to use to reconstruct the <see cref="T:System.Security.Cryptography.DSA" /> object.
Reconstructs a <see cref="T:System.Security.Cryptography.DSA" /> object from an XML string.
public int
GetMaxSignatureSize​(DSASignatureFormat signatureFormat)
Inherited from DSA
signatureFormat The encoding format for a signature.
Returns The largest size, in bytes, for a signature produced by this key in the indicated format.
Gets the largest size, in bytes, for a signature produced by this key in the indicated format.
public void
ImportFromEncryptedPem​(ReadOnlySpan`1 input, ReadOnlySpan`1 passwordBytes)
Inherited from DSA
public void
ImportFromEncryptedPem​(ReadOnlySpan`1 input, ReadOnlySpan`1 password)
Inherited from DSA
public void
ImportFromPem​(ReadOnlySpan`1 input)
Inherited from DSA
public void
ImportPkcs8PrivateKey​(ReadOnlySpan`1 source, Int32& bytesRead)
Inherited from DSA
public void
ImportSubjectPublicKeyInfo​(ReadOnlySpan`1 source, Int32& bytesRead)
Inherited from DSA
public byte[]
SignData​(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm)
Inherited from DSA
data The input data for which to compute the hash.
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.
Returns The DSA signature for the specified data.
Computes the hash value of a portion of the specified byte array using the specified hash algorithm and signs the resulting hash value.
public byte[]
SignData​(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
data The data to sign.
offset The offset into <paramref name="data" /> at which to begin hashing.
count The number of bytes to read from <paramref name="data" /> .
hashAlgorithm The hash algorithm to use to create the hash value.
signatureFormat The encoding format to use for the signature.
Returns The DSA signature for the specified data.
Computes the hash value of the specified data and signs it using the specified signature format.
public byte[]
SignData​(byte[] data, HashAlgorithmName hashAlgorithm)
Inherited from DSA
data The input data for which to compute the hash.
hashAlgorithm The hash algorithm to use to create the hash value.
Returns The DSA 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​(byte[] data, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
data The data to sign.
hashAlgorithm The hash algorithm to use to create the hash value.
signatureFormat The encoding format to use for the signature.
Returns The DSA signature for the specified data.
Computes the hash value of the specified data and signs it using the specified signature format.
public byte[]
SignData​(IO.Stream data, HashAlgorithmName hashAlgorithm)
Inherited from DSA
data The input stream for which to compute the hash.
hashAlgorithm The hash algorithm to use to create the hash value.
Returns The DSA signature for the specified data.
Computes the hash value of the specified stream using the specified hash algorithm and signs the resulting hash value.
public byte[]
SignData​(IO.Stream data, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
data The data to sign.
hashAlgorithm The hash algorithm to use to create the hash value.
signatureFormat The encoding format to use for the signature.
Returns The DSA signature for the specified data.
Computes the hash value of the specified data and signs it using the specified signature format.
protected byte[]
SignDataCore​(IO.Stream data, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
data The data to sign.
hashAlgorithm The hash algorithm to use to create the hash value.
signatureFormat The encoding format to use for the signature.
Returns The DSA signature for the specified data.
Computes the hash value of the specified data and signs it using the specified signature format.
protected byte[]
SignDataCore​(ReadOnlySpan`1 data, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
public string
ToXmlString​(bool includePrivateParameters)
Inherited from DSA
includePrivateParameters <see langword="true" /> to include private parameters; otherwise, <see langword="false" /> .
Returns An XML string encoding of the current <see cref="T:System.Security.Cryptography.DSA" /> object.
Creates and returns an XML string representation of the current <see cref="T:System.Security.Cryptography.DSA" /> object.
public bool
TryCreateSignature​(ReadOnlySpan`1 hash, Span`1 destination, Int32& bytesWritten)
Inherited from DSA
public bool
TryCreateSignature​(ReadOnlySpan`1 hash, Span`1 destination, DSASignatureFormat signatureFormat, Int32& bytesWritten)
Inherited from DSA
protected bool
TryCreateSignatureCore​(ReadOnlySpan`1 hash, Span`1 destination, DSASignatureFormat signatureFormat, Int32& bytesWritten)
Inherited from DSA
public bool
TryExportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 passwordBytes, PbeParameters pbeParameters, Span`1 destination, Int32& bytesWritten)
Inherited from DSA
public bool
TryExportEncryptedPkcs8PrivateKey​(ReadOnlySpan`1 password, PbeParameters pbeParameters, Span`1 destination, Int32& bytesWritten)
Inherited from DSA
public bool
TryExportPkcs8PrivateKey​(Span`1 destination, Int32& bytesWritten)
Inherited from DSA
public bool
TryExportSubjectPublicKeyInfo​(Span`1 destination, Int32& bytesWritten)
Inherited from DSA
protected bool
TryHashData​(ReadOnlySpan`1 data, Span`1 destination, HashAlgorithmName hashAlgorithm, Int32& bytesWritten)
Inherited from DSA
public bool
TrySignData​(ReadOnlySpan`1 data, Span`1 destination, HashAlgorithmName hashAlgorithm, Int32& bytesWritten)
Inherited from DSA
public bool
TrySignData​(ReadOnlySpan`1 data, Span`1 destination, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat, Int32& bytesWritten)
Inherited from DSA
protected bool
TrySignDataCore​(ReadOnlySpan`1 data, Span`1 destination, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat, Int32& bytesWritten)
Inherited from DSA
public bool
VerifyData​(byte[] data, byte[] signature, HashAlgorithmName hashAlgorithm)
Inherited from DSA
data The signed data.
signature The signature data to be verified.
hashAlgorithm The hash algorithm used to create the hash value of the data.
Returns <see langword="true" /> if the digital 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 comparing it to the provided signature.
public bool
VerifyData​(byte[] data, byte[] signature, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
data The signed data.
signature The signature to verify.
hashAlgorithm The hash algorithm used to hash the data for the verification process.
signatureFormat The encoding format for <paramref name="signature" /> .
Returns <see langword="true" /> if the digital signature is valid for the provided data; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid for the provided data.
public bool
VerifyData​(byte[] data, int offset, int count, byte[] signature, HashAlgorithmName hashAlgorithm)
Inherited from DSA
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.
Returns <see langword="true" /> if the digital 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 comparing it to the provided signature.
public bool
VerifyData​(byte[] data, int offset, int count, byte[] signature, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
data An array that contains the signed data.
offset The starting index of the signed portion of <paramref name="data" /> .
count The number of bytes in <paramref name="data" /> that were signed.
signature The signature to verify.
hashAlgorithm The hash algorithm used to hash the data for the verification process.
signatureFormat The encoding format for <paramref name="signature" /> .
Returns <see langword="true" /> if the digital signature is valid for the provided data; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid for the provided data.
public bool
VerifyData​(IO.Stream data, byte[] signature, HashAlgorithmName hashAlgorithm)
Inherited from DSA
data The signed data.
signature The signature data to be verified.
hashAlgorithm The hash algorithm used to create the hash value of the data.
Returns <see langword="true" /> if the digital 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 comparing it to the provided signature.
public bool
VerifyData​(IO.Stream data, byte[] signature, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
data The signed data.
signature The signature to verify.
hashAlgorithm The hash algorithm used to hash the data for the verification process.
signatureFormat The encoding format for <paramref name="signature" /> .
Returns <see langword="true" /> if the digital signature is valid for the provided data; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid for the provided data.
public bool
VerifyData​(ReadOnlySpan`1 data, ReadOnlySpan`1 signature, HashAlgorithmName hashAlgorithm)
Inherited from DSA
public bool
VerifyData​(ReadOnlySpan`1 data, ReadOnlySpan`1 signature, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
protected bool
VerifyDataCore​(IO.Stream data, ReadOnlySpan`1 signature, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
protected bool
VerifyDataCore​(ReadOnlySpan`1 data, ReadOnlySpan`1 signature, HashAlgorithmName hashAlgorithm, DSASignatureFormat signatureFormat)
Inherited from DSA
public bool
VerifySignature​(byte[] rgbHash, byte[] rgbSignature, DSASignatureFormat signatureFormat)
Inherited from DSA
rgbHash The signed hash.
rgbSignature The signature to verify.
signatureFormat The encoding format for <paramref name="rgbSignature" /> .
Returns <see langword="true" /> if the digital signature is valid for the provided data; otherwise, <see langword="false" /> .
Verifies that a digital signature is valid for the provided hash.
public bool
VerifySignature​(ReadOnlySpan`1 hash, ReadOnlySpan`1 signature)
Inherited from DSA
public bool
VerifySignature​(ReadOnlySpan`1 hash, ReadOnlySpan`1 signature, DSASignatureFormat signatureFormat)
Inherited from DSA
protected bool
VerifySignatureCore​(ReadOnlySpan`1 hash, ReadOnlySpan`1 signature, DSASignatureFormat signatureFormat)
Inherited from DSA
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