DSA Classe

Definição

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.Versioning.UnsupportedOSPlatform("browser")]
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.Versioning.UnsupportedOSPlatform("browser")>]
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

Observações

Pode usar a DSA classe e as classes derivadas para criar assinaturas digitais que ajudam a proteger a integridade dos seus dados. Fornece DSACryptoServiceProvider uma implementação desta classe.

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 digest da mensagem. O remetente então encripta o digest da mensagem com a chave privada do remetente para criar a assinatura pessoal do remetente. Ao receber a mensagem e a assinatura, o recetor desencripta a assinatura usando a chave pública do remetente para recuperar o resumo da mensagem e faz o hash da mensagem usando o mesmo algoritmo de hash que o remetente utilizou. Se o digest da mensagem que o recetor calcula corresponder exatamente ao digest da mensagem recebido do remetente, o recetor pode assumir que a mensagem não foi alterada durante o trânsito. Note que uma assinatura pode ser verificada por qualquer pessoa, porque a chave pública do remetente é de conhecimento comum.

Importante

Os criadores do algoritmo DSA retiraram o seu apoio a ele. Considera usar a RSA classe ou a ECDsa classe em vez da classe DSA . Use DSA apenas para compatibilidade com aplicações e dados legados.

Existem duas versões diferentes do algoritmo DSA. A forma original, descrita no FIPS 186-2, requer o uso do SHA-1 como algoritmo de hash e suporta 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 permitiu a utilização da família SHA-2 de algoritmos de hash e adicionou suporte para chaves de 2048 bits e chaves de 3072 bits. Nem todas as implementações derivadas deste tipo suportam as melhorias FIPS 186-3 para DSA. O suporte pode ser detetado através da LegalKeySizes propriedade.

Construtores

Name Description
DSA()

Inicializa uma nova instância da DSA classe.

Campos

Name 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 suportados pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)

Propriedades

Name Description
KeyExchangeAlgorithm

Quando é sobreposto numa 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 suportados pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
SignatureAlgorithm

Quando implementado numa classe derivada, recebe o nome do algoritmo de assinatura. Caso contrário, lança sempre um NotImplementedException.

(Herdado de AsymmetricAlgorithm)

Métodos

Name Description
Clear()

Liberta todos os recursos usados pela AsymmetricAlgorithm turma.

(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 especificados da chave DSA.

Create(Int32)

Cria uma nova chave DSA efémera com o tamanho de chave especificado.

Create(String)
Obsoleto.

Cria o objeto criptográfico especificado usado para executar o algoritmo assimétrico.

CreateSignature(Byte[], DSASignatureFormat)

Cria a assinatura DSA para o valor hash especificado no formato indicado.

CreateSignature(Byte[])

Quando sobreposto numa classe derivada, cria-se a DSA assinatura para o valor de hash especificado.

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

Cria a assinatura DSA para o valor hash especificado no formato indicado.

Dispose()

Liberta todos os recursos usados pela instância atual da AsymmetricAlgorithm classe.

(Herdado de AsymmetricAlgorithm)
Dispose(Boolean)

Liberta os recursos não geridos usados pela AsymmetricAlgorithm classe e, opcionalmente, liberta os recursos geridos.

(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 palavra-passe baseada em bytes.

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

Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em caracteres.

(Herdado de AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em bytes, codificada em PEM.

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

Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em caracteres, codificada em PEM.

(Herdado de AsymmetricAlgorithm)
ExportParameters(Boolean)

Quando sobreposto numa classe derivada, exporta o DSAParameters.

ExportPkcs8PrivateKey()

Exporta a chave atual no formato PKCS#8 PrivateKeyInfo.

(Herdado de AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

Exporta a chave atual no formato PKCS#8 PrivateKeyInfo, codificado em PEM.

(Herdado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Exporta a parte da chave pública da chave atual no formato X.509 SubjectPublicKeyInfo.

(Herdado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

Exporta a parte da chave pública da chave atual no formato X.509 SubjectPublicKeyInfo, codificado em PEM.

(Herdado de AsymmetricAlgorithm)
FromXmlString(String)

Reconstrói um DSA objeto a partir de uma string XML.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetMaxSignatureSize(DSASignatureFormat)

Obtém o maior tamanho, em bytes, para uma assinatura produzida por esta chave no formato indicado.

GetType()

Obtém o Type da instância atual.

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

Quando sobrescrito numa classe derivada, calcula o valor de hash de uma porção especificada de um array de bytes usando um algoritmo de hash especificado.

HashData(Stream, HashAlgorithmName)

Quando sobrescrito numa 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)

Importa o par de chaves público/privado de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptar com uma palavra-passe baseada em bytes, substituindo as chaves deste objeto.

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

Quando sobrescrito numa classe derivada, importa o par de chaves público/privado de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptar com uma palavra-passe baseada em bytes, substituindo as chaves deste objeto.

(Herdado de AsymmetricAlgorithm)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Importa o par de chaves pública/privada de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptação com uma palavra-passe baseada em caracteres, substituindo as chaves deste objeto.

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

Quando sobrescrito numa classe derivada, importa o par de chaves público/privado de uma estrutura PKCS#8 EncryptedPrivateKeyInfo após desencriptação com uma palavra-passe baseada em caracteres, substituindo as chaves deste objeto.

(Herdado de AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

Importa uma chave privada codificada em PEM RFC 7468 encriptada, substituindo as chaves deste objeto.

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

Importa uma chave privada codificada em PEM RFC 7468 encriptada, substituindo as chaves deste objeto.

ImportFromPem(ReadOnlySpan<Char>)

Importa uma chave codificada em PEM no RFC 7468, substituindo as chaves deste objeto.

ImportParameters(DSAParameters)

Quando sobreposto numa classe derivada, importa o especificado DSAParameters.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa o par de chaves público/privado de uma estrutura PKCS#8 PrivateKeyInfo após a desencriptação, substituindo as chaves deste objeto.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Quando é sobreposto numa classe derivada, importa o par de chaves público/privado de uma estrutura PrivateKeyInfo PKCS#8 após a desencriptação, substituindo as chaves deste objeto.

(Herdado de AsymmetricAlgorithm)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Importa a chave pública de uma estrutura X.509 SubjectPublicKeyInfo após a desencriptação, substituindo as chaves deste objeto.

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Quando é sobreposta numa classe derivada, importa a chave pública de uma estrutura X.509 SubjectPublicKeyInfo após a desencriptação, substituindo as chaves deste objeto.

(Herdado de AsymmetricAlgorithm)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

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

Calcula o valor de hash dos dados especificados e assina-os usando o formato de assinatura especificado.

SignData(Byte[], HashAlgorithmName)

Calcula o valor de hash do array de bytes especificado usando o algoritmo de hash especificado e assina o valor de hash resultante.

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

Calcula o valor de hash dos dados especificados e assina-os usando o formato de assinatura especificado.

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

Calcula o valor de hash de uma parte do array de bytes especificado usando o algoritmo de hash especificado e assina o valor de hash resultante.

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

Calcula o valor de hash dos dados especificados e assina-os usando o formato de assinatura especificado.

SignData(Stream, HashAlgorithmName)

Calcula o valor de hash do fluxo especificado usando o algoritmo de hash especificado e assina o valor de hash resultante.

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

Calcula o valor de hash dos dados especificados e assina-os usando o formato de assinatura especificado.

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

Calcula o valor de hash dos dados especificados e assina-os usando o formato de assinatura especificado.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
ToXmlString(Boolean)

Cria e devolve uma representação de string XML do objeto atual DSA .

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

Tenta criar a assinatura DSA para o valor hash especificado no formato indicado e colocá-la no buffer fornecido.

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

Tenta criar a assinatura DSA para o hash especificado no buffer fornecido.

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

Tenta criar a assinatura DSA para o valor hash especificado no formato indicado e colocá-la no buffer fornecido.

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

Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em bytes.

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

Quando sobreposta numa classe derivada, tenta exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em bytes.

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

Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em caracteres.

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

Quando é sobreposta numa classe derivada, tenta exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo para um buffer fornecido, usando uma palavra-passe baseada em caracteres.

(Herdado de AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32)

Tentativas de exportar a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em bytes, codificada em PEM.

(Herdado de AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

Exporta a chave atual no formato PKCS#8 EncryptedPrivateKeyInfo com uma palavra-passe baseada em caracteres, codificada em PEM.

(Herdado de AsymmetricAlgorithm)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Tenta exportar a chave atual no formato PKCS#8 PrivateKeyInfo para um buffer fornecido.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Quando sobreposta numa classe derivada, tenta exportar a chave atual no formato PKCS#8 PrivateKeyInfo para um buffer fornecido.

(Herdado de AsymmetricAlgorithm)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

Tentativas de exportar a chave atual no formato PKCS#8 PrivateKeyInfo codificado em PEM para um buffer fornecido.

(Herdado de AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Tentativas de exportar a chave atual no formato X.509 SubjectPublicKeyInfo para um buffer fornecido.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Quando sobreposta numa classe derivada, tenta exportar a chave atual no formato X.509 SubjectPublicKeyInfo para um buffer fornecido.

(Herdado de AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

Tentativas de exportar a chave atual no formato X.509 SubjectPublicKeyInfo codificado em PEM para um buffer fornecido.

(Herdado de AsymmetricAlgorithm)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

Tenta calcular o valor de hash dos dados fornecidos num buffer fornecido.

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

Tenta criar a assinatura DSA para os dados especificados no formato indicado e colocá-la no buffer fornecido.

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

Tenta criar a assinatura DSA para os dados especificados no buffer fornecido.

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

Tenta criar a assinatura DSA para os dados especificados no formato indicado e colocá-la no buffer fornecido.

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

Verifica se uma assinatura digital é válida para os dados fornecidos.

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, DSASignatureFormat)

Verifica se uma assinatura digital é válida para os dados fornecidos.

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

Verifica se uma assinatura digital é válida calculando o valor de hash dos dados numa parte de um array de bytes usando o algoritmo de hash especificado e comparando-o com a assinatura fornecida.

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

Verifica se uma assinatura digital é válida para os dados fornecidos.

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

Verifica se uma assinatura digital é válida calculando o valor de hash dos dados num intervalo de bytes usando o algoritmo de hash especificado e comparando-o com a assinatura fornecida.

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

Verifica se uma assinatura digital é válida para os dados fornecidos.

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.

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

Verifica se uma assinatura digital é válida para os dados fornecidos.

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

Verifica se uma assinatura digital é válida para os dados fornecidos.

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

Verifica se uma assinatura digital é válida para o hash fornecido.

VerifySignature(Byte[], Byte[])

Quando sobreposta numa classe derivada, verifica a DSA assinatura dos dados especificados.

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

Verifica se uma assinatura digital é válida para o hash fornecido.

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

Verifica se uma assinatura digital é válida para um hash de dados fornecido.

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

Verifica se uma assinatura digital é válida para o hash fornecido.

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código.

Para uma descrição deste elemento, veja Dispose().

(Herdado de AsymmetricAlgorithm)

Aplica-se a

Ver também