DSA Classe

Definição

Representa a classe base abstrata da qual todas as implementações de DSA (Algoritmo de Assinatura Digital) devem ser herdadas.Represents the abstract base class from which all implementations of the Digital Signature Algorithm (DSA) must inherit.

public ref class DSA abstract : 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
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
Herança
Derivado
Atributos

Comentários

Você pode usar a classe DSA e classes derivadas para criar assinaturas digitais que ajudam a proteger a integridade dos seus dados.You can use the DSA class and derived classes to create digital signatures that help protect the integrity of your data. O DSACryptoServiceProvider fornece uma implementação dessa classe.The DSACryptoServiceProvider provides an implementation of this class.

Para usar um sistema de chave pública para assinar digitalmente uma mensagem, o remetente aplica primeiro uma função de hash à mensagem para criar um resumo de mensagem.To use a public-key system to digitally sign a message, the sender first applies a hash function to the message to create a message digest. Em seguida, o remetente criptografa o resumo da mensagem com a chave privada do remetente para criar a assinatura pessoal do remetente.The sender then encrypts the message digest with the sender's private key to create the sender's personal signature. Ao receber a mensagem e a assinatura, o destinatário descriptografa a assinatura usando a chave pública do remetente para recuperar o resumo da mensagem e faz hash da mensagem usando o mesmo algoritmo de hash usado pelo remetente.Upon receiving the message and signature, the receiver decrypts the signature using the sender's public key to recover the message digest and hashes the message using the same hash algorithm that the sender used. Se o resumo da mensagem que o receptor computa exatamente corresponder ao resumo da mensagem recebido do remetente, o receptor poderá pressupor que a mensagem não foi alterada durante o trânsito.If the message digest that the receiver computes exactly matches the message digest received from the sender, the receiver can assume that the message was not altered while in transit. Observe que uma assinatura pode ser verificada por qualquer pessoa, porque a chave pública do remetente é um conhecimento comum.Note that a signature can be verified by anyone, because the sender's public key is common knowledge.

Importante

Algoritmos assimétricos mais recentes estão disponíveis.Newer asymmetric algorithms are available. Considere usar a classe RSA ou a classe ECDsa em vez da classe DSA.Consider using the RSA class or the ECDsa class instead of the DSA class. Use DSA apenas para compatibilidade com dados e aplicativos herdados.Use DSA only for compatibility with legacy applications and data.

Existem duas versões diferentes do algoritmo DSA.Two different versions of the DSA algorithm exist. O formulário original, descrito em FIPS 186-2, requer o uso de SHA-1 como o algoritmo de hash e dá suporte a comprimentos de chave de 512 bits a 1024 bits em incrementos de 64 bits.The original form, described in FIPS 186-2, requires the use of SHA-1 as the hash algorithm and supports key lengths from 512 bits to 1024 bits in increments of 64 bits. Uma versão atualizada do algoritmo foi descrita no FIPS 186-3, que habilitou o uso da família SHA-2 de algoritmos de hash e adicionou suporte para chaves de 2048 bits e chaves de 3072 bits.An updated version of the algorithm was described in FIPS 186-3, which enabled the use of the SHA-2 family of hash algorithms and added support for 2048 bit keys and 3072 bit keys. Nem todas as implementações derivadas desse tipo dão suporte aos aprimoramentos do FIPS 186-3 para o DSA.Not all derived implementations of this type support the FIPS 186-3 enhancements to DSA. O suporte pode ser detectado por meio da propriedade LegalKeySizes.Support can be detected via the LegalKeySizes property.

Construtores

DSA()

Inicializa uma nova instância da classe DSA.Initializes a new instance of the DSA class.

Campos

KeySizeValue

Representa o tamanho, em bits, do módulo chave usado pelo algoritmo assimétrico.Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(Herdado de AsymmetricAlgorithm)
LegalKeySizesValue

Especifica os tamanhos de chave que são compatíveis com o algoritmo assimétrico.Specifies the key sizes that are supported by the asymmetric algorithm.

(Herdado de AsymmetricAlgorithm)

Propriedades

KeyExchangeAlgorithm

Quando substituída em uma classe derivada, obtém o nome do algoritmo de troca de chaves.When overridden in a derived class, gets the name of the key exchange algorithm. Caso contrário, gerará um NotImplementedException.Otherwise, throws an NotImplementedException.

(Herdado de AsymmetricAlgorithm)
KeySize

Obtém ou define o tamanho, em bits, do módulo chave usado pelo algoritmo assimétrico.Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

(Herdado de AsymmetricAlgorithm)
LegalKeySizes

Obtém os tamanhos de chave que têm suporte pelo algoritmo assimétrico.Gets the key sizes that are supported by the asymmetric algorithm.

(Herdado de AsymmetricAlgorithm)
SignatureAlgorithm

Quando implementado em uma classe derivada, obtém o nome do algoritmo de assinatura.When implemented in a derived class, gets the name of the signature algorithm. Caso contrário, sempre gerará um NotImplementedException.Otherwise, always throws a NotImplementedException.

(Herdado de AsymmetricAlgorithm)

Métodos

Clear()

Libera todos os recursos usados pela classe AsymmetricAlgorithm.Releases all resources used by the AsymmetricAlgorithm class.

(Herdado de AsymmetricAlgorithm)
Create()

Cria o objeto de criptografia padrão usado para executar o algoritmo assimétrico.Creates the default cryptographic object used to perform the asymmetric algorithm.

Create(DSAParameters)

Cria uma nova chave DSA efêmera com os parâmetros de chave DSA especificados.Creates a new ephemeral DSA key with the specified DSA key parameters.

Create(Int32)

Cria uma nova chave DSA efêmera com o tamanho da chave especificado.Creates a new ephemeral DSA key with the specified key size.

Create(String)

Cria o objeto criptográfico especificado usado para executar o algoritmo assimétrico.Creates the specified cryptographic object used to perform the asymmetric algorithm.

CreateSignature(Byte[])

Quando substituído em uma classe derivada, cria a assinatura DSA para o valor de hash especificado.When overridden in a derived class, creates the DSA signature for the specified hash value.

Dispose()

Libera todos os recursos usados pela instância atual da classe AsymmetricAlgorithm.Releases all resources used by the current instance of the AsymmetricAlgorithm class.

(Herdado de AsymmetricAlgorithm)
Dispose(Boolean)

Libera os recursos não gerenciados usados pela classe AsymmetricAlgorithm e, opcionalmente, libera os recursos gerenciados.Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.

(Herdado de AsymmetricAlgorithm)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Exporta a chave atual no formato EncryptedPrivateKeyInfo do PKCS nº 8 com uma senha baseada em bytes.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.

(Herdado de AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Exporta a chave atual no formato EncryptedPrivateKeyInfo do PKCS nº 8 com uma senha baseada em caracteres.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.

(Herdado de AsymmetricAlgorithm)
ExportParameters(Boolean)

Quando substituído em uma classe derivada, exporta o DSAParameters.When overridden in a derived class, exports the DSAParameters.

ExportPkcs8PrivateKey()

Exporta a chave atual no formato PrivateKeyInfo do PKCS nº 8.Exports the current key in the PKCS#8 PrivateKeyInfo format.

(Herdado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Exporta a parte pública da chave atual no formato SubjectPublicKeyInfo X.509.Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.

(Herdado de AsymmetricAlgorithm)
FromXmlString(String)

Reconstrói um objeto DSA de uma cadeia de caracteres XML.Reconstructs a DSA object from an XML string.

GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

Quando substituído em uma classe derivada, calcula o valor de hash de uma parte especificada de uma matriz de bytes usando um algoritmo de hash especificado.When overridden in a derived class, computes the hash value of a specified portion of a byte array by using a specified hashing algorithm.

HashData(Stream, HashAlgorithmName)

Quando substituído em uma classe derivada, calcula o valor de hash de um fluxo binário especificado usando um algoritmo de hash especificado.When overridden in a derived class, computes the hash value of a specified binary stream by using a specified hashing algorithm.

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

Importa o par de chaves pública/privada de uma estrutura de EncryptedPrivateKeyInfo do PKCS nº 8 após descriptografar com uma senha baseada em bytes, substituindo as chaves desse objeto.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a byte-based password, replacing the keys for this object.

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

Importa o par de chaves pública/privada de uma estrutura de EncryptedPrivateKeyInfo do PKCS nº 8 após descriptografar com uma senha baseada em caracteres, substituindo as chaves desse objeto.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a char-based password, replacing the keys for this object.

ImportParameters(DSAParameters)

Quando é substituído em uma classe derivada, importa o DSAParameters especificado.When overridden in a derived class, imports the specified DSAParameters.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa o par de chaves pública/privada de uma estrutura de PrivateKeyInfo do PKCS nº 8 após a descriptografia, substituindo as chaves desse objeto.Imports the public/private keypair from a PKCS#8 PrivateKeyInfo structure after decryption, replacing the keys for this object.

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Importa a chave pública de uma estrutura de SubjectPublicKeyInfo X.509 após a descriptografia, substituindo as chaves desse objeto.Imports the public key from an X.509 SubjectPublicKeyInfo structure after decryption, replacing the keys for this object.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
SignData(Byte[], HashAlgorithmName)

Calcula o valor de hash da matriz de byte especificada usando o algoritmo de hash especificado e assina o valor de hash resultante.Computes the hash value of the specified byte array using the specified hash algorithm and signs the resulting hash value.

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

Calcula o valor de hash de uma parte da matriz de byte especificada usando o algoritmo de hash especificado e assina o valor de hash resultante.Computes the hash value of a portion of the specified byte array using the specified hash algorithm and signs the resulting hash value.

SignData(Stream, HashAlgorithmName)

Calcula o valor de hash do fluxo especificado usando o algoritmo de hash especificado e assina o valor de hash resultante.Computes the hash value of the specified stream using the specified hash algorithm and signs the resulting hash value.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)
ToXmlString(Boolean)

Cria e retorna uma representação de cadeia de caracteres XML do objeto DSA atual.Creates and returns an XML string representation of the current DSA object.

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

Tenta criar a assinatura DSA para o hash especificado no buffer fornecido.Attempts to create the DSA signature for the specified hash into the provided buffer.

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

Tenta exportar a chave atual no formato EncryptedPrivateKeyInfo do PKCS n º 8 para um buffer fornecido, usando uma senha baseada em bytes.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a byte-based password.

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

Tenta exportar a chave atual no formato EncryptedPrivateKeyInfo do PKCS n º 8 para um buffer fornecido, usando uma senha baseada em caracteres.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a char-based password.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Tenta exportar a chave atual no formato PrivateKeyInfo do PKCS n º 8 para um buffer fornecido.Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into a provided buffer.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Tenta exportar a chave atual no formato SubjectPublicKeyInfo X.509 para um buffer fornecido.Attempts to export the current key in the X.509 SubjectPublicKeyInfo format into a provided buffer.

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

Tenta computar o valor de hash dos dados fornecidos em um buffer fornecido.Attempts to compute the hash value of the provided data into a provided buffer.

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

Tenta criar a assinatura DSA para os dados especificados no buffer fornecido.Attempts to create the DSA signature for the specified data into the provided buffer.

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

Verifica se uma assinatura digital é válida calculando o valor de hash dos dados especificados usando o algoritmo de hash especificados e comparando-o à assinatura fornecida.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.

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

Verifica se uma assinatura digital é válida calculando o valor de hash dos dados especificados em uma parte de uma matriz de bytes usando o algoritmo de hash especificado e comparando-o à assinatura fornecida.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.

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

Verifica se uma assinatura digital é válida calculando o valor de hash dos dados em um intervalo de bytes usando o algoritmo de hash especificados e comparando-o à assinatura fornecida.Verifies that a digital signature is valid by calculating the hash value of the data in a byte span using the specified hash algorithm and comparing it to the provided signature.

VerifyData(Stream, Byte[], HashAlgorithmName)

Verifica se uma assinatura digital é válida calculando o valor de hash do fluxo especificado usando o algoritmo de hash especificado e comparando-o à assinatura fornecida.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.

VerifySignature(Byte[], Byte[])

Quando substituído em uma classe derivada, verifica a assinatura DSA para os dados especificados.When overridden in a derived class, verifies the DSA signature for the specified data.

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

Verifica se a assinatura digital é válida para um hash de dados fornecido.Verifies that a digital signature is valid for a provided data hash.

Implantações explícitas de interface

IDisposable.Dispose()

Para obter uma descrição desse membro, confira Dispose().For a description of this member, see Dispose().

(Herdado de AsymmetricAlgorithm)

Aplica-se a

Veja também