DSA Clase

Definición

Representa la clase base abstracta de la que deben heredarse todas las implementaciones del algoritmo de firma digital (DSA).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
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
Herencia
Derivado
Atributos

Comentarios

Puede usar la clase DSA y las clases derivadas para crear firmas digitales que ayuden a proteger la integridad de los datos.You can use the DSA class and derived classes to create digital signatures that help protect the integrity of your data. El DSACryptoServiceProvider proporciona una implementación de esta clase.The DSACryptoServiceProvider provides an implementation of this class.

Para usar un sistema de clave pública para firmar digitalmente un mensaje, el remitente aplica en primer lugar una función hash al mensaje para crear una síntesis del mensaje.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. A continuación, el remitente cifra la síntesis del mensaje con la clave privada del remitente para crear la firma personal del remitente.The sender then encrypts the message digest with the sender's private key to create the sender's personal signature. Tras recibir el mensaje y la firma, el receptor descifra la firma mediante la clave pública del remitente para recuperar la síntesis del mensaje y aplica un algoritmo hash al mensaje mediante el mismo algoritmo hash que utilizó el remitente.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. Si la síntesis del mensaje que el receptor calcula coincide exactamente con la síntesis del mensaje recibida del remitente, el receptor puede suponer que el mensaje no se modificó mientras estaba en 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. Tenga en cuenta que cualquier persona puede comprobar una firma, ya que la clave pública del remitente es de conocimiento común.Note that a signature can be verified by anyone, because the sender's public key is common knowledge.

Importante

Hay disponibles algoritmos asimétricos más recientes.Newer asymmetric algorithms are available. Considere la posibilidad de usar la clase RSA o la clase ECDsa en lugar de la clase DSA.Consider using the RSA class or the ECDsa class instead of the DSA class. Utilice DSA solo para la compatibilidad con aplicaciones y datos heredados.Use DSA only for compatibility with legacy applications and data.

Existen dos versiones diferentes del algoritmo DSA.Two different versions of the DSA algorithm exist. 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.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. Se describe una versión actualizada del algoritmo en FIPS 186-3, que permitía el uso de la familia SHA-2 de algoritmos hash y se agregó compatibilidad con claves de bits 2048 y claves de bits de 3072.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. No todas las implementaciones derivadas de este tipo admiten las mejoras de FIPS 186-3 en DSA.Not all derived implementations of this type support the FIPS 186-3 enhancements to DSA. La compatibilidad se puede detectar a través de la propiedad LegalKeySizes.Support can be detected via the LegalKeySizes property.

Constructores

DSA()

Inicializa una nueva instancia de la clase DSA.Initializes a new instance of the DSA class.

Campos

KeySizeValue

Representa el tamaño, en bits, del módulo de claves que usa el algoritmo asimétrico.Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)
LegalKeySizesValue

Especifica los tamaños de clave admitidos por el algoritmo asimétrico.Specifies the key sizes that are supported by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)

Propiedades

KeyExchangeAlgorithm

Cuando se invalida en una clase derivada, obtiene el nombre del algoritmo de intercambio de claves.When overridden in a derived class, gets the name of the key exchange algorithm. En caso contrario, produce una excepción NotImplementedException.Otherwise, throws an NotImplementedException.

(Heredado de AsymmetricAlgorithm)
KeySize

Obtiene o establece el tamaño, en bits, del módulo de claves que usa el algoritmo asimétrico.Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)
LegalKeySizes

Obtiene los tamaños de clave que admite el algoritmo asimétrico.Gets the key sizes that are supported by the asymmetric algorithm.

(Heredado de AsymmetricAlgorithm)
SignatureAlgorithm

Cuando se implementa en una clase derivada, obtiene el nombre del algoritmo de signatura.When implemented in a derived class, gets the name of the signature algorithm. En caso contrario, produce siempre una NotImplementedException.Otherwise, always throws a NotImplementedException.

(Heredado de AsymmetricAlgorithm)

Métodos

Clear()

Libera todos los recursos que utiliza la clase AsymmetricAlgorithm.Releases all resources used by the AsymmetricAlgorithm class.

(Heredado de AsymmetricAlgorithm)
Create()

Crea un objeto criptográfico predeterminado para realizar el algoritmo asimétrico.Creates the default cryptographic object used to perform the asymmetric algorithm.

Create(DSAParameters)

Crea una clave DSA efímera con los parámetros de clave DSA especificados.Creates a new ephemeral DSA key with the specified DSA key parameters.

Create(Int32)

Crea una clave DSA efímera con el tamaño de clave especificado.Creates a new ephemeral DSA key with the specified key size.

Create(String)

Crea un objeto criptográfico predeterminado para realizar el algoritmo asimétrico.Creates the specified cryptographic object used to perform the asymmetric algorithm.

CreateSignature(Byte[])

Si se reemplaza en una clase derivada, crea la firma DSA para el valor hash especificado.When overridden in a derived class, creates the DSA signature for the specified hash value.

Dispose()

Libera todos los recursos usados por la instancia actual de la clase AsymmetricAlgorithm.Releases all resources used by the current instance of the AsymmetricAlgorithm class.

(Heredado de AsymmetricAlgorithm)
Dispose(Boolean)

Libera los recursos no administrados utilizados por la clase AsymmetricAlgorithm y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.

(Heredado de AsymmetricAlgorithm)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(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.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.

(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.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.

(Heredado de AsymmetricAlgorithm)
ExportParameters(Boolean)

Cuando se invalida en una clase derivada, exporta el DSAParameters.When overridden in a derived class, exports the DSAParameters.

ExportPkcs8PrivateKey()

Exporta la clave actual en el formato PrivateKeyInfo de PKCS#8.Exports the current key in the PKCS#8 PrivateKeyInfo format.

(Heredado de AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Exporta la parte de la clave pública de la clave actual en el formato SubjectPublicKeyInfo de X.509.Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.

(Heredado de AsymmetricAlgorithm)
FromXmlString(String)

Reconstruye un objeto DSA a partir de una cadena XML.Reconstructs a DSA object from an XML string.

GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(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 usando un algoritmo 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)

Cuando se reemplaza en una clase derivada, calcula el valor hash de una secuencia binaria especificada usando un algoritmo 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 el par de claves pública/privada desde una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en bytes, reemplazando las claves de este 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 el par de claves pública/privada desde una estructura EncryptedPrivateKeyInfo de PKCS#8 después de descifrar con una contraseña basada en caracteres, reemplazando las claves de este 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)

Cuando se invalida en una clase derivada, importa el objeto DSAParameters especificado.When overridden in a derived class, imports the specified DSAParameters.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importa el par de claves pública/privada desde una estructura PrivateKeyInfo de PKCS#8 después del descifrado, reemplazando las claves de este 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 la clave pública desde una estructura SubjectPublicKeyInfo de X.509 después del descifrado, reemplazando las claves de este objeto.Imports the public key from an X.509 SubjectPublicKeyInfo structure after decryption, replacing the keys for this object.

MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

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

Calcula el valor hash de la matriz de bytes especificada usando el algoritmo hash especificado y firma el valor 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 el valor hash de una parte de la matriz de bytes especificada usando el algoritmo hash especificado y firma el valor 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 el valor hash de la secuencia especificada usando el algoritmo hash especificado y firma el valor hash resultante.Computes the hash value of the specified stream using the specified hash algorithm and signs the resulting hash value.

ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
ToXmlString(Boolean)

Crea y devuelve una representación en forma de cadena XML del objeto DSA actual.Creates and returns an XML string representation of the current DSA object.

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

Intenta crear la firma DSA para el hash especificado en el búfer proporcionado.Attempts to create the DSA signature for the specified hash into the provided buffer.

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

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 a un búfer proporcionado, utilizando una contraseña basada en 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)

Intenta exportar la clave actual en el formato EncryptedPrivateKeyInfo de PKCS#8 a un búfer proporcionado, utilizando una contraseña basada en 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)

Intenta exportar la clave actual en el formato PrivateKeyInfo de PKCS#8 a un búfer proporcionado.Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into a provided buffer.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Intenta exportar la clave actual en el formato SubjectPublicKeyInfo de X.509 a un búfer proporcionado.Attempts to export the current key in the X.509 SubjectPublicKeyInfo format into a provided buffer.

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

Intenta calcular el valor hash de los datos proporcionados en un búfer proporcionado.Attempts to compute the hash value of the provided data into a provided buffer.

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

Intenta crear la firma DSA para los datos especificados en el búfer proporcionado.Attempts to create the DSA signature for the specified data into the provided buffer.

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

Comprueba si una firma digital es válida calculando el valor hash de los datos especificados, para lo que usa el algoritmo hash especificado y lo compara con la firma proporcionada.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)

Comprueba si una firma digital es válida calculando el valor hash de los datos de una parte de una matriz de bytes, para lo que usa el algoritmo hash especificado y lo compara con la firma proporcionada.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)

Comprueba si una firma digital es válida calculando el valor hash de los datos en un intervalo de bytes, para lo que usa el algoritmo hash especificado y lo compara con la firma proporcionada.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)

Comprueba si una firma digital es válida calculando el valor hash de la secuencia especificada, para lo que usa el algoritmo hash especificado y lo compara con la firma proporcionada.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[])

Cuando se reemplaza en una clase derivada, comprueba la firma DSA de los datos especificados.When overridden in a derived class, verifies the DSA signature for the specified data.

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

Comprueba que una firma digital sea válida para un hash de datos proporcionado.Verifies that a digital signature is valid for a provided data hash.

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Para una descripción de este miembro, vea Dispose().For a description of this member, see Dispose().

(Heredado de AsymmetricAlgorithm)

Se aplica a

Consulte también: