Condividi tramite


DSA Classe

Definizione

Rappresenta la classe base astratta da cui devono ereditare tutte le implementazioni dell'algoritmo di firma digitale (DSA).

public ref class DSA abstract : System::Security::Cryptography::AsymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type DSA = class
    inherit AsymmetricAlgorithm
type DSA = class
    inherit AsymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
Ereditarietà
Derivato
Attributi

Commenti

È possibile usare la DSA classe e le classi derivate per creare firme digitali che consentono di proteggere l'integrità dei dati. fornisce DSACryptoServiceProvider un'implementazione di questa classe.

Per usare un sistema a chiave pubblica per firmare digitalmente un messaggio, il mittente applica innanzitutto una funzione hash al messaggio per creare un digest del messaggio. Il mittente crittografa quindi il digest del messaggio con la chiave privata del mittente per creare la firma personale del mittente. Dopo aver ricevuto il messaggio e la firma, il ricevitore decrittografa la firma usando la chiave pubblica del mittente per recuperare il digest del messaggio e esegue l'hashing del messaggio usando lo stesso algoritmo hash usato dal mittente. Se il digest del messaggio calcolato dal ricevitore corrisponde esattamente al digest del messaggio ricevuto dal mittente, il destinatario può presupporre che il messaggio non sia stato modificato durante il transito. Si noti che una firma può essere verificata da chiunque, perché la chiave pubblica del mittente è una conoscenza comune.

Importante

I creatori dell'algoritmo DSA hanno ritirato il supporto. È consigliabile usare la RSA classe o la ECDsa classe anziché la DSA classe . Usare DSA solo per la compatibilità con applicazioni e dati legacy.

Esistono due versioni diverse dell'algoritmo DSA. Il formato originale, descritto in FIPS 186-2, richiede l'uso di SHA-1 come algoritmo hash e supporta lunghezze di chiave da 512 bit a 1024 bit in incrementi di 64 bit. Una versione aggiornata dell'algoritmo è stata descritta in FIPS 186-3, che ha abilitato l'uso della famiglia di algoritmi hash SHA-2 e aggiunto il supporto per chiavi a 2048 bit e chiavi a 3072 bit. Non tutte le implementazioni derivate di questo tipo supportano i miglioramenti FIPS 186-3 per DSA. Il supporto può essere rilevato tramite la LegalKeySizes proprietà .

Costruttori

DSA()

Inizializza una nuova istanza della classe DSA.

Campi

KeySizeValue

Rappresenta la dimensione in bit del modulo della chiave usato dall'algoritmo asimmetrico.

(Ereditato da AsymmetricAlgorithm)
LegalKeySizesValue

Specifica le dimensioni delle chiavi supportate dall'algoritmo asimmetrico.

(Ereditato da AsymmetricAlgorithm)

Proprietà

KeyExchangeAlgorithm

Quando ne viene eseguito l'override in una classe derivata, ottiene il nome dell'algoritmo di scambio delle chiavi; in caso contrario, genera NotImplementedException.

(Ereditato da AsymmetricAlgorithm)
KeySize

Ottiene o imposta la dimensione in bit del modulo della chiave usato dall'algoritmo asimmetrico.

(Ereditato da AsymmetricAlgorithm)
LegalKeySizes

Ottiene le dimensioni delle chiavi supportate dall'algoritmo asimmetrico.

(Ereditato da AsymmetricAlgorithm)
SignatureAlgorithm

Quando ne viene eseguito l'override in una classe derivata, ottiene il nome dell'algoritmo di scambio delle chiavi; in caso contrario, genera sempre NotImplementedException.

(Ereditato da AsymmetricAlgorithm)

Metodi

Clear()

Rilascia tutte le risorse usate dalla classe AsymmetricAlgorithm.

(Ereditato da AsymmetricAlgorithm)
Create()

Consente di creare l'oggetto di crittografia predefinito utilizzato per eseguire l'algoritmo asimmetrico.

Create(DSAParameters)

Crea una nuova chiave DSA temporanea con i parametri di chiave DSA specificati.

Create(Int32)

Crea una nuova chiave DSA temporanea con le dimensioni della chiave specificate.

Create(String)
Obsoleti.

Consente di creare l'oggetto di crittografia specificato utilizzato per eseguire l'algoritmo asimmetrico.

CreateSignature(Byte[])

In caso di override in una classe derivata, crea la firma DSA per il valore hash specificato.

CreateSignature(Byte[], DSASignatureFormat)

Crea la firma DSA del valore hash specificato nel formato indicato.

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

Crea la firma DSA del valore hash specificato nel formato indicato.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe AsymmetricAlgorithm.

(Ereditato da AsymmetricAlgorithm)
Dispose(Boolean)

Rilascia le risorse non gestite usate dalla classe AsymmetricAlgorithm e facoltativamente le risorse gestite.

(Ereditato da AsymmetricAlgorithm)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Esporta la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo con una password basata su byte.

(Ereditato da AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Esporta la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo con una password basata su caratteri.

(Ereditato da AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

Esporta la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo con una password basata su byte, con codifica PEM.

(Ereditato da AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters)

Esporta la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo con una password basata su caratteri, con codifica PEM.

(Ereditato da AsymmetricAlgorithm)
ExportParameters(Boolean)

Quando è sottoposto a override in una classe derivata, esporta DSAParameters.

ExportPkcs8PrivateKey()

Esporta la chiave corrente nel formato PKCS#8 PrivateKeyInfo.

(Ereditato da AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

Esporta la chiave corrente nel formato PKCS#8 PrivateKeyInfo, con codifica PEM.

(Ereditato da AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Esporta la parte della chiave pubblica della chiave corrente nel formato X.509 SubjectPublicKeyInfo.

(Ereditato da AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

Esporta la parte pubblica della chiave pubblica della chiave corrente nel formato X.509 SubjectPublicKeyInfo, codificato con PEM.

(Ereditato da AsymmetricAlgorithm)
FromXmlString(String)

Consente di ricostruire un oggetto DSA da una stringa XML.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetMaxSignatureSize(DSASignatureFormat)

Ottiene le dimensioni massime, in byte, per una firma prodotta da questa chiave nel formato indicato.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

Quando sottoposto a override in una classe derivata, calcola il valore hash di una parte specificata di una matrice di byte usando un algoritmo hash specificato.

HashData(Stream, HashAlgorithmName)

Quando sottoposto a override in una classe derivata, calcola il valore hash di un flusso binario specificato usando un algoritmo hash specificato.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

Importa la coppia di chiavi pubblica/privata da una struttura PKCS#8 EncryptedPrivateKeyInfo dopo la decrittografia con una password basata su byte, sostituendo le chiavi per questo oggetto.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

Quando sottoposto a override in una classe derivata, importa la coppia di chiavi pubblica/privata da una struttura PKCS#8 EncryptedPrivateKeyInfo dopo la decrittografia con una password basata su byte, sostituendo le chiavi per questo oggetto.

(Ereditato da AsymmetricAlgorithm)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Importa la coppia di chiavi pubblica/privata da una struttura PKCS#8 EncryptedPrivateKeyInfo dopo la decrittografia con una password basata su caratteri, sostituendo le chiavi per questo oggetto.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Quando sottoposto a override in una classe derivata, importa la coppia di chiavi pubblica/privata da una struttura PKCS#8 EncryptedPrivateKeyInfo dopo la decrittografia con una password basata su caratteri, sostituendo le chiavi per questo oggetto.

(Ereditato da AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

Importa una chiave privata con codifica PEM crittografata RFC 7468, sostituendo le chiavi per questo oggetto.

ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

Quando sottoposto a override in una classe derivata, importa una chiave con codifica PEM RFC 7468 crittografata, sostituendo le chiavi per questo oggetto.

(Ereditato da AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Importa una chiave privata con codifica PEM crittografata RFC 7468, sostituendo le chiavi per questo oggetto.

ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Quando sottoposto a override in una classe derivata, importa una chiave con codifica PEM RFC 7468 crittografata, sostituendo le chiavi per questo oggetto.

(Ereditato da AsymmetricAlgorithm)
ImportFromPem(ReadOnlySpan<Char>)

Importa una chiave con codifica PEM RFC 7468, sostituendo le chiavi per questo oggetto.

ImportFromPem(ReadOnlySpan<Char>)

Quando sottoposto a override in una classe derivata, importa una chiave codificata in modo testuale RFC 7468, sostituendo le chiavi per questo oggetto.

(Ereditato da AsymmetricAlgorithm)
ImportParameters(DSAParameters)

Quando è sottoposto a override in una classe derivata, importa l'oggetto DSAParameters specificato.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa la coppia di chiavi pubblica/privata da una struttura PKCS#8 PrivateKeyInfo dopo la decrittografia, sostituendo le chiavi per questo oggetto.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Quando sottoposto a override in una classe derivata, importa la coppia di chiavi pubblica/privata da una struttura PKCS#8 PrivateKeyInfo dopo la decrittografia, sostituendo le chiavi per questo oggetto.

(Ereditato da AsymmetricAlgorithm)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Importa la chiave pubblica da una struttura X.509 SubjectPublicKeyInfo dopo la decrittografia, sostituendo le chiavi per questo oggetto.

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Quando sottoposto a override in una classe derivata, importa la chiave pubblica da una struttura X.509 SubjectPublicKeyInfo dopo la decrittografia, sostituendo le chiavi per questo oggetto.

(Ereditato da AsymmetricAlgorithm)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
SignData(Byte[], HashAlgorithmName)

Calcola il valore hash della matrice di byte specificata usando l'algoritmo hash specificato e firma il valore hash risultante.

SignData(Byte[], HashAlgorithmName, DSASignatureFormat)

Calcola il valore hash dei dati specificati e li firma usando il formato di firma specificato.

SignData(Byte[], Int32, Int32, HashAlgorithmName)

Calcola il valore hash di una parte della matrice di byte specificata usando l'algoritmo hash specificato e firma il valore hash risultante.

SignData(Byte[], Int32, Int32, HashAlgorithmName, DSASignatureFormat)

Calcola il valore hash dei dati specificati e li firma usando il formato di firma specificato.

SignData(Stream, HashAlgorithmName)

Calcola il valore hash del flusso specificato usando l'algoritmo hash specificato e firma il valore hash risultante.

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

Calcola il valore hash dei dati specificati e li firma usando il formato di firma specificato.

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

Calcola il valore hash dei dati specificati e li firma usando il formato di firma specificato.

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

Calcola il valore hash dei dati specificati e li firma usando il formato di firma specificato.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
ToXmlString(Boolean)

Consente di creare e restituire una rappresentazione in forma di stringa XML dell'oggetto DSA corrente.

TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

Prova a creare la firma DSA per il valore hash specificato nel formato indicato e la inserisce nel buffer specificato.

TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Tenta di creare la firma DSA per l'hash specificato nel buffer fornito.

TryCreateSignatureCore(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

Prova a creare la firma DSA per il valore hash specificato nel formato indicato e la inserisce nel buffer specificato.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

Tenta di esportare la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo in un buffer specificato, usando una password basata su byte.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

Quando sottoposto a override in una classe derivata, tenta di esportare la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo in un buffer specificato, usando una password basata su byte.

(Ereditato da AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

Tenta di esportare la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo in un buffer specificato, usando una password basata su caratteri.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

Quando sottoposto a override in una classe derivata, tenta di esportare la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo in un buffer specificato, usando una password basata su caratteri.

(Ereditato da AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32)

Tenta di esportare la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo con una password basata su byte, con codifica PEM.

(Ereditato da AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

Esporta la chiave corrente nel formato PKCS#8 EncryptedPrivateKeyInfo con una password basata su caratteri, con codifica PEM.

(Ereditato da AsymmetricAlgorithm)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Tenta di esportare la chiave corrente nel formato PKCS#8 PrivateKeyInfo in un buffer specificato.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Quando sottoposto a override in una classe derivata, tenta di esportare la chiave corrente nel formato PKCS#8 PrivateKeyInfo in un buffer specificato.

(Ereditato da AsymmetricAlgorithm)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

Tenta di esportare la chiave corrente nel formato PKCS#8 PrivateKeyInfo con codifica PEM in un buffer fornito.

(Ereditato da AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Tenta di esportare la chiave corrente nel formato X.509 SubjectPublicKeyInfo in un buffer specificato.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Quando sottoposto a override in una classe derivata, tenta di esportare la chiave corrente nel formato X.509 SubjectPublicKeyInfo in un buffer specificato.

(Ereditato da AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

Tenta di esportare la chiave corrente nel formato X.509 SoggettoPublicKeyInfo con codifica PEM in un buffer fornito.

(Ereditato da AsymmetricAlgorithm)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

Tenta di calcolare il valore hash dei dati specificati in un buffer specificato.

TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

Prova a creare la firma DSA per i dati specificati nel formato indicato e la inserisce nel buffer specificato.

TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

Tenta di creare la firma DSA per i dati specificati nel buffer fornito.

TrySignDataCore(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

Prova a creare la firma DSA per i dati specificati nel formato indicato e la inserisce nel buffer specificato.

VerifyData(Byte[], Byte[], HashAlgorithmName)

Verifica che una firma digitale sia valida calcolando il valore hash dei dati specificati usando l'algoritmo hash specificato e confrontandolo con la firma fornita.

VerifyData(Byte[], Byte[], HashAlgorithmName, DSASignatureFormat)

Verifica che una firma digitale sia valida per i dati specificati.

VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName)

Verifica che una firma digitale sia valida calcolando il valore hash dei dati in una parte di matrice di byte usando l'algoritmo hash specificato e confrontandolo con la firma fornita.

VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName, DSASignatureFormat)

Verifica che una firma digitale sia valida per i dati specificati.

VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName)

Verifica che una firma digitale sia valida calcolando il valore hash dei dati in un intervallo di byte usando l'algoritmo hash specificato e confrontandolo con la firma fornita.

VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

Verifica che una firma digitale sia valida per i dati specificati.

VerifyData(Stream, Byte[], HashAlgorithmName)

Verifica che una firma digitale sia valida calcolando il valore hash del flusso specificato usando l'algoritmo hash specificato e confrontandolo con la firma fornita.

VerifyData(Stream, Byte[], HashAlgorithmName, DSASignatureFormat)

Verifica che una firma digitale sia valida per i dati specificati.

VerifyDataCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

Verifica che una firma digitale sia valida per i dati specificati.

VerifyDataCore(Stream, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

Verifica che una firma digitale sia valida per i dati specificati.

VerifySignature(Byte[], Byte[])

Quando è sottoposto a override in una classe derivata, verifica la firma DSA per i dati specificati.

VerifySignature(Byte[], Byte[], DSASignatureFormat)

Verifica che una firma digitale sia valida per l'hash fornito.

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

Verifica che una firma digitale sia valida per un hash di dati specificato.

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

Verifica che una firma digitale sia valida per l'hash fornito.

VerifySignatureCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

Verifica che una firma digitale sia valida per l'hash fornito.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice.

Per una descrizione di questo membro, vedere Dispose().

(Ereditato da AsymmetricAlgorithm)

Si applica a

Vedi anche