DSA Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa a classe base abstrata da qual todas as implementações do Algoritmo de Assinatura Digital (DSA) devem herdar.
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
[<System.Runtime.InteropServices.ComVisible(true)>]
type DSA = class
inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
- Herança
- Derivado
- Atributos
Comentários
Você pode usar a DSA classe e as classes derivadas para criar assinaturas digitais que ajudam a proteger a integridade de seus dados. Fornece DSACryptoServiceProvider uma implementação dessa classe.
Para usar um sistema de chave pública para assinar digitalmente uma mensagem, o remetente primeiro aplica uma função de hash à mensagem para criar um resumo de mensagem. Em seguida, o remetente criptografa o resumo da mensagem com a chave privada do remetente para criar a assinatura pessoal do remetente. Ao receber a mensagem e a assinatura, o receptor descriptografa a assinatura usando a chave pública do remetente para recuperar o resumo da mensagem e hashes a mensagem usando o mesmo algoritmo de hash usado pelo remetente. Se a mensagem digerir que o receptor computa corresponde exatamente ao resumo da mensagem recebida do remetente, o receptor poderá assumir que a mensagem não foi alterada durante o trânsito. Observe que uma assinatura pode ser verificada por qualquer pessoa, pois a chave pública do remetente é de conhecimento comum.
Importante
Os criadores do algoritmo DSA retiraram o suporte para ele. Considere usar a RSA classe ou a ECDsa classe em vez da DSA classe. Use DSA apenas para compatibilidade com aplicativos e dados herdados.
Existem duas versões diferentes do algoritmo DSA. O formulário original, descrito no 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. 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 3.072 bits. Nem todas as implementações derivadas desse tipo dão suporte aos aprimoramentos fips 186-3 para DSA. O suporte pode ser detectado por meio da LegalKeySizes propriedade.
Construtores
| Nome | Description |
|---|---|
| DSA() |
Inicializa uma nova instância da classe DSA. |
Campos
| Nome | Description |
|---|---|
| KeySizeValue |
Representa o tamanho, em bits, do módulo de chave usado pelo algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
| LegalKeySizesValue |
Especifica os tamanhos de chave compatíveis com o algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
Propriedades
| Nome | Description |
|---|---|
| KeyExchangeAlgorithm |
Quando substituído em uma classe derivada, obtém o nome do algoritmo de troca de chaves. Caso contrário, lança um NotImplementedException. (Herdado de AsymmetricAlgorithm) |
| KeySize |
Obtém ou define o tamanho, em bits, do módulo de chave usado pelo algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
| LegalKeySizes |
Obtém os tamanhos de chave compatíveis com o algoritmo assimétrico. (Herdado de AsymmetricAlgorithm) |
| SignatureAlgorithm |
Quando implementado em uma classe derivada, obtém o nome do algoritmo de assinatura. Caso contrário, sempre gerará um NotImplementedException. (Herdado de AsymmetricAlgorithm) |
Métodos
| Nome | Description |
|---|---|
| Clear() |
Libera todos os recursos usados pela AsymmetricAlgorithm classe. (Herdado de AsymmetricAlgorithm) |
| Create() |
Cria o objeto criptográfico padrão usado para executar o algoritmo assimétrico. |
| Create(DSAParameters) |
Cria uma nova chave DSA efêmera com os parâmetros de chave DSA especificados. |
| Create(Int32) |
Cria uma nova chave DSA efêmera com o tamanho da chave especificado. |
| Create(String) |
Cria o objeto criptográfico especificado usado para executar o algoritmo assimétrico. |
| CreateSignature(Byte[]) |
Quando substituído em uma classe derivada, cria a DSA assinatura para o valor de hash especificado. |
| Dispose() |
Libera todos os recursos usados pela instância atual da AsymmetricAlgorithm classe. (Herdado de AsymmetricAlgorithm) |
| Dispose(Boolean) |
Libera os recursos não gerenciados usados pela AsymmetricAlgorithm classe e, opcionalmente, libera os recursos gerenciados. (Herdado de AsymmetricAlgorithm) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters) |
Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma senha baseada em bytes. (Herdado de AsymmetricAlgorithm) |
| ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters) |
Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma senha baseada em char. (Herdado de AsymmetricAlgorithm) |
| ExportParameters(Boolean) |
Quando substituído em uma classe derivada, exporta o DSAParameters. |
| ExportPkcs8PrivateKey() |
Exporta a chave atual no formato PKCS#8 PrivateKeyInfo. (Herdado de AsymmetricAlgorithm) |
| ExportSubjectPublicKeyInfo() |
Exporta a parte de chave pública da chave atual no formato SubjectPublicKeyInfo X.509. (Herdado de AsymmetricAlgorithm) |
| FromXmlString(String) |
Reconstrói um DSA objeto de uma cadeia de caracteres XML. |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (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. |
| 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. |
| ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) |
Quando substituído em uma classe derivada, importa o keypair público/privado de uma estrutura PKCS#8 EncryptedPrivateKeyInfo depois de descriptografar com uma senha baseada em bytes, substituindo as chaves desse objeto. (Herdado de AsymmetricAlgorithm) |
| ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32) |
Quando substituído em uma classe derivada, importa o keypair público/privado de uma estrutura PKCS#8 EncryptedPrivateKeyInfo depois de descriptografar com uma senha baseada em char, substituindo as chaves desse objeto. (Herdado de AsymmetricAlgorithm) |
| ImportParameters(DSAParameters) |
Quando substituído em uma classe derivada, importa o especificado DSAParameters. |
| ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32) |
Quando substituído em uma classe derivada, importa o keypair público/privado de uma estrutura PKCS#8 PrivateKeyInfo após a descriptografia, substituindo as chaves desse objeto. (Herdado de AsymmetricAlgorithm) |
| ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32) |
Quando substituído em uma classe derivada, importa a chave pública de uma estrutura SubjectPublicKeyInfo X.509 após a descriptografia, substituindo as chaves desse objeto. (Herdado de AsymmetricAlgorithm) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| SignData(Byte[], HashAlgorithmName) |
Calcula o valor de hash da matriz de bytes especificada usando o algoritmo de hash especificado e assina o valor de hash resultante. |
| SignData(Byte[], Int32, Int32, HashAlgorithmName) |
Calcula o valor de hash de uma parte da matriz de bytes especificada usando o algoritmo de hash especificado e assina o valor de hash resultante. |
| SignData(Stream, HashAlgorithmName) |
Calcula o valor de hash do fluxo especificado usando o algoritmo de hash especificado e assina o valor de hash resultante. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| ToXmlString(Boolean) |
Cria e retorna uma representação de cadeia de caracteres XML do objeto atual DSA . |
| TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Tenta criar a assinatura DSA para o hash especificado no buffer fornecido. |
| TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32) |
Quando substituído em uma classe derivada, tenta exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma senha baseada em bytes. (Herdado de AsymmetricAlgorithm) |
| TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32) |
Quando substituído em uma classe derivada, tenta exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma senha baseada em char. (Herdado de AsymmetricAlgorithm) |
| TryExportPkcs8PrivateKey(Span<Byte>, Int32) |
Quando substituído em uma classe derivada, tenta exportar a chave atual no formato PKCS#8 PrivateKeyInfo para um buffer fornecido. (Herdado de AsymmetricAlgorithm) |
| TryExportSubjectPublicKeyInfo(Span<Byte>, Int32) |
Quando substituído em uma classe derivada, tenta exportar a chave atual no formato SubjectPublicKeyInfo X.509 para um buffer fornecido. (Herdado de AsymmetricAlgorithm) |
| TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) |
Tenta calcular o valor de hash dos dados fornecidos em um buffer fornecido. |
| TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) |
Tenta criar a assinatura DSA para os dados especificados no buffer fornecido. |
| VerifyData(Byte[], Byte[], HashAlgorithmName) |
Verifica se uma assinatura digital é válida calculando o valor de hash dos dados especificados usando o algoritmo de hash especificado e comparando-o com a assinatura fornecida. |
| VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName) |
Verifica se uma assinatura digital é válida calculando o valor de hash dos dados em uma parte de uma matriz de bytes usando o algoritmo de hash especificado e comparando-a com a assinatura fornecida. |
| 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 especificado e comparando-o com a assinatura fornecida. |
| 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 com a assinatura fornecida. |
| VerifySignature(Byte[], Byte[]) |
Quando substituído em uma classe derivada, verifica a DSA assinatura dos dados especificados. |
| VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>) |
Verifica se uma assinatura digital é válida para um hash de dados fornecido. |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IDisposable.Dispose() |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Para obter uma descrição deste membro, consulte Dispose(). (Herdado de AsymmetricAlgorithm) |