DSA Clase

Definición

Representa la clase base abstracta de la que deben heredar todas las implementaciones del algoritmo de firma digital (DSA).

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
Herencia
Derivado
Atributos

Comentarios

Puede usar la clase y las DSA clases derivadas para crear firmas digitales que ayuden a proteger la integridad de los datos. DSACryptoServiceProvider proporciona una implementación de esta clase.

Para usar un sistema de clave pública para firmar digitalmente un mensaje, el remitente aplica primero una función hash al mensaje para crear un resumen de mensaje. A continuación, el remitente cifra el resumen del mensaje con la clave privada del remitente para crear la firma personal del remitente. Al recibir el mensaje y la firma, el receptor descifra la firma mediante la clave pública del remitente para recuperar el resumen del mensaje y aplica un hash al mensaje mediante el mismo algoritmo hash que usó el remitente. Si el resumen del mensaje que el receptor calcula coincide exactamente con el resumen del mensaje recibido del remitente, el receptor puede suponer que el mensaje no se modificó durante el tránsito. Tenga en cuenta que cualquier persona puede comprobar una firma, ya que la clave pública del remitente es un conocimiento común.

Importante

Los creadores del algoritmo DSA han retirado su compatibilidad con él. Considere la posibilidad de usar la RSA clase o la ECDsa clase en lugar de la DSA clase . Use DSA solo para la compatibilidad con aplicaciones y datos heredados.

Existen dos versiones diferentes del algoritmo DSA. El formulario original, descrito en FIPS 186-2, requiere el uso de SHA-1 como algoritmo hash y admite longitudes de clave de 512 bits a 1024 bits en incrementos de 64 bits. Se ha descrito una versión actualizada del algoritmo en FIPS 186-3, que habilitó el uso de la familia SHA-2 de algoritmos hash y agregó compatibilidad con claves de 2048 bits y claves de 3072 bits. No todas las implementaciones derivadas de este tipo admiten las mejoras fiPS 186-3 para DSA. La compatibilidad se puede detectar a través de la LegalKeySizes propiedad .

Constructores

Nombre Description
DSA()

Inicializa una nueva instancia de la clase DSA.

Campos

Nombre Description
KeySizeValue

Representa el tamaño, en bits, del módulo de clave utilizado por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)
LegalKeySizesValue

Especifica los tamaños de clave admitidos por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)

Propiedades

Nombre Description
KeyExchangeAlgorithm

Cuando se reemplaza en una clase derivada, obtiene el nombre del algoritmo de intercambio de claves. De lo contrario, produce una NotImplementedExceptionexcepción .

(Heredado de AsymmetricAlgorithm)
KeySize

Obtiene o establece el tamaño, en bits, del módulo de clave utilizado por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)
LegalKeySizes

Obtiene los tamaños de clave admitidos por el algoritmo asimétrico.

(Heredado de AsymmetricAlgorithm)
SignatureAlgorithm

Cuando se implementa en una clase derivada, obtiene el nombre del algoritmo de firma. De lo contrario, siempre produce una NotImplementedExceptionexcepción .

(Heredado de AsymmetricAlgorithm)

Métodos

Nombre Description
Clear()

Libera todos los recursos usados por la AsymmetricAlgorithm clase .

(Heredado de AsymmetricAlgorithm)
Create()

Crea el objeto criptográfico predeterminado que se usa para realizar el algoritmo asimétrico.

Create(DSAParameters)

Crea una nueva clave DSA efímera con los parámetros de clave DSA especificados.

Create(Int32)

Crea una nueva clave DSA efímera con el tamaño de clave especificado.

Create(String)

Crea el objeto criptográfico especificado que se usa para realizar el algoritmo asimétrico.

CreateSignature(Byte[])

Cuando se reemplaza en una clase derivada, crea la DSA firma para el valor hash especificado.

Dispose()

Libera todos los recursos usados por la instancia actual de la AsymmetricAlgorithm clase .

(Heredado de AsymmetricAlgorithm)
Dispose(Boolean)

Libera los recursos no administrados usados por la AsymmetricAlgorithm clase y, opcionalmente, libera los recursos administrados.

(Heredado de AsymmetricAlgorithm)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

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

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en bytes.

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

Exporta la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 con una contraseña basada en caracteres.

(Heredado de AsymmetricAlgorithm)
ExportParameters(Boolean)

Cuando se invalida en una clase derivada, exporta .DSAParameters

ExportPkcs8PrivateKey()

Exporta la clave actual en el formato PrivateKeyInfo PKCS#8.

(Heredado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Exporta la parte de clave pública de la clave actual en el formato SubjectPublicKeyInfo X.509.

(Heredado de AsymmetricAlgorithm)
FromXmlString(String)

Reconstruye un DSA objeto a partir de una cadena XML.

GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

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

Cuando se reemplaza en una clase derivada, calcula el valor hash de una parte especificada de una matriz de bytes mediante un algoritmo hash especificado.

HashData(Stream, HashAlgorithmName)

Cuando se reemplaza en una clase derivada, calcula el valor hash de una secuencia binaria especificada mediante un algoritmo hash especificado.

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

Cuando se reemplaza en una clase derivada, importa el keypair público/privado de una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en bytes, reemplazando las claves de este objeto.

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

Cuando se reemplaza en una clase derivada, importa el keypair público/privado de una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en caracteres, reemplazando las claves de este objeto.

(Heredado de AsymmetricAlgorithm)
ImportParameters(DSAParameters)

Cuando se invalida en una clase derivada, importa el especificado DSAParameters.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Cuando se invalida en una clase derivada, importa el keypair público/privado de una estructura PrivateKeyInfo PKCS#8 después del descifrado, reemplazando las claves de este objeto.

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

Cuando se invalida en una clase derivada, importa la clave pública de una estructura SubjectPublicKeyInfo X.509 después del descifrado, reemplazando las claves de este objeto.

(Heredado de AsymmetricAlgorithm)
MemberwiseClone()

Crea una copia superficial del Objectactual.

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

Calcula el valor hash de la matriz de bytes especificada mediante el algoritmo hash especificado y firma el valor hash resultante.

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

Calcula el valor hash de una parte de la matriz de bytes especificada mediante el algoritmo hash especificado y firma el valor hash resultante.

SignData(Stream, HashAlgorithmName)

Calcula el valor hash de la secuencia especificada mediante el algoritmo hash especificado y firma el valor hash resultante.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
ToXmlString(Boolean)

Crea y devuelve una representación de cadena XML del objeto actual DSA .

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

Intenta crear la firma DSA para el hash especificado en el búfer proporcionado.

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

Cuando se invalida en una clase derivada, intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 en un búfer proporcionado, mediante una contraseña basada en bytes.

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

Cuando se invalida en una clase derivada, intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 en un búfer proporcionado, mediante una contraseña basada en caracteres.

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

Cuando se reemplaza en una clase derivada, intenta exportar la clave actual en el formato PrivateKeyInfo PKCS#8 en un búfer proporcionado.

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

Cuando se reemplaza en una clase derivada, intenta exportar la clave actual en el formato SubjectPublicKeyInfo X.509 en un búfer proporcionado.

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

Intenta calcular el valor hash de los datos proporcionados en un búfer proporcionado.

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

Intenta crear la firma DSA para los datos especificados en el búfer proporcionado.

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

Comprueba que una firma digital es válida calculando el valor hash de los datos especificados mediante el algoritmo hash especificado y comparándolo con la firma proporcionada.

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

Comprueba que una firma digital es válida calculando el valor hash de los datos en una parte de una matriz de bytes mediante el algoritmo hash especificado y comparándolo con la firma proporcionada.

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

Comprueba que una firma digital es válida calculando el valor hash de los datos en un intervalo de bytes mediante el algoritmo hash especificado y comparándolo con la firma proporcionada.

VerifyData(Stream, Byte[], HashAlgorithmName)

Comprueba que una firma digital es válida calculando el valor hash de la secuencia especificada mediante el algoritmo hash especificado y comparándolo con la firma proporcionada.

VerifySignature(Byte[], Byte[])

Cuando se invalida en una clase derivada, comprueba la DSA firma de los datos especificados.

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

Comprueba que una firma digital es válida para un hash de datos proporcionado.

Implementaciones de interfaz explícitas

Nombre Description
IDisposable.Dispose()

Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código.

Para obtener una descripción de este miembro, vea Dispose().

(Heredado de AsymmetricAlgorithm)

Se aplica a

Consulte también