ECDsaCng Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona una implementación cryptography Next Generation (CNG) del algoritmo de firma digital de curva elíptica (ECDSA).
public ref class ECDsaCng sealed : System::Security::Cryptography::ECDsa
public sealed class ECDsaCng : System.Security.Cryptography.ECDsa
type ECDsaCng = class
inherit ECDsa
Public NotInheritable Class ECDsaCng
Inherits ECDsa
- Herencia
Ejemplos
En el ejemplo siguiente se muestra cómo usar la ECDsaCng clase para firmar un mensaje y cómo usar la firma para comprobar que el mensaje no se ha modificado.
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
class Alice
{
public static void Main(string[] args)
{
Bob bob = new Bob();
using (ECDsaCng dsa = new ECDsaCng())
{
dsa.HashAlgorithm = CngAlgorithm.Sha256;
bob.key = dsa.Key.Export(CngKeyBlobFormat.EccPublicBlob);
byte[] data = new byte[] { 21, 5, 8, 12, 207 };
byte[] signature = dsa.SignData(data);
bob.Receive(data, signature);
}
}
}
public class Bob
{
public byte[] key;
public void Receive(byte[] data, byte[] signature)
{
using (ECDsaCng ecsdKey = new ECDsaCng(CngKey.Import(key, CngKeyBlobFormat.EccPublicBlob)))
{
if (ecsdKey.VerifyData(data, signature))
Console.WriteLine("Data is good");
else
Console.WriteLine("Data is bad");
}
}
}
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text
Class Alice
Public Shared Sub Main(ByVal args() As String)
Dim bob As New Bob()
If (True) Then
Using dsa As New ECDsaCng()
dsa.HashAlgorithm = CngAlgorithm.Sha256
bob.key = dsa.Key.Export(CngKeyBlobFormat.EccPublicBlob)
Dim data() As Byte = {21, 5, 8, 12, 207}
Dim signature As Byte() = dsa.SignData(data)
bob.Receive(data, signature)
End Using
End If
End Sub
End Class
Public Class Bob
Public key() As Byte
Public Sub Receive(ByVal data() As Byte, ByVal signature() As Byte)
Using ecsdKey As New ECDsaCng(CngKey.Import(key, CngKeyBlobFormat.EccPublicBlob))
If ecsdKey.VerifyData(data, signature) Then
Console.WriteLine("Data is good")
Else
Console.WriteLine("Data is bad")
End If
End Using
End Sub
End Class
Comentarios
Esta clase solo se debe usar directamente al realizar la interoperabilidad de plataforma con la biblioteca CNG de Windows. Cuando no se necesita la interoperabilidad de plataforma, debe usar los ECDsa.Create métodos de fábrica en lugar de una implementación derivada específica.
Constructores
| Nombre | Description |
|---|---|
| ECDsaCng() |
Inicializa una nueva instancia de la ECDsaCng clase con un par de claves aleatorio. |
| ECDsaCng(CngKey) |
Inicializa una nueva instancia de la ECDsaCng clase mediante el objeto especificado CngKey . |
| ECDsaCng(ECCurve) |
Inicializa una nueva instancia de la ECDsaCng clase cuyo par de claves pública y privada se genera a través de la curva especificada. |
| ECDsaCng(Int32) |
Inicializa una nueva instancia de la ECDsaCng clase con un tamaño de clave de destino especificado. |
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 |
|---|---|
| HashAlgorithm |
Obtiene o establece el algoritmo hash que se va a usar al firmar y comprobar los datos. |
| Key |
Obtiene o establece la clave que se va a usar al firmar y comprobar los datos. |
| KeyExchangeAlgorithm |
Obtiene el nombre del algoritmo de intercambio de claves. (Heredado de ECDsa) |
| 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 |
Obtiene el nombre del algoritmo de firma. (Heredado de ECDsa) |
Métodos
| Nombre | Description |
|---|---|
| Clear() |
Libera todos los recursos usados por la AsymmetricAlgorithm clase . (Heredado de AsymmetricAlgorithm) |
| 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) |
| ExportExplicitParameters(Boolean) |
Exporta los parámetros clave y curva explícita utilizados por el objeto criptografía de curva elíptica (ECC) en un ECParameters objeto . |
| ExportParameters(Boolean) |
Exporta la clave usada por el objeto criptografía de curva elíptica (ECC) a un ECParameters objeto . Si la clave se creó como una curva con nombre, el Curve campo contiene parámetros de curva con nombre; de lo contrario, contiene parámetros explícitos. |
| FromXmlString(String, ECKeyXmlFormat) |
Deserializa la información de clave de una cadena XML mediante el formato especificado. |
| FromXmlString(String) |
Este método no se implementa. |
| GenerateKey(ECCurve) |
Genera un nuevo par de claves pública/privada efímeras para la curva especificada, reemplazando la clave actual. |
| 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 la parte especificada de una matriz de bytes mediante el algoritmo hash especificado. (Heredado de ECDsa) |
| HashData(Stream, HashAlgorithmName) |
Cuando se reemplaza en una clase derivada, calcula el valor hash de la secuencia binaria especificada mediante el algoritmo hash especificado. (Heredado de ECDsa) |
| ImportParameters(ECParameters) |
Reemplaza la clave existente con la que está trabajando la instancia actual mediante la creación de un nuevo CngKey para la estructura de parámetros. |
| 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. (Heredado de ECDsa) |
| 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. (Heredado de ECDsa) |
| SignData(Byte[], Int32, Int32) |
Genera una firma digital para la longitud especificada de los datos, empezando por el desplazamiento especificado. |
| SignData(Byte[]) |
Genera una firma para los datos especificados. |
| SignData(Stream, HashAlgorithmName) |
Calcula el valor hash de la secuencia especificada mediante el algoritmo hash especificado y firma el valor hash resultante. (Heredado de ECDsa) |
| SignData(Stream) |
Genera una firma para el flujo de datos especificado, leyendo hasta el final de la secuencia. |
| SignHash(Byte[]) |
Genera una firma para el valor hash especificado. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| ToXmlString(Boolean) |
Este método no se implementa. |
| ToXmlString(ECKeyXmlFormat) |
Serializa la información de clave en una cadena XML mediante el formato especificado. |
| VerifyData(Byte[], Byte[], HashAlgorithmName) |
Comprueba que una firma digital es adecuada para la clave actual y proporciona datos con un algoritmo hash especificado. (Heredado de ECDsa) |
| VerifyData(Byte[], Byte[]) |
Comprueba la firma digital de los datos especificados. |
| VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName) |
Comprueba que una firma digital es adecuada para la clave actual y la parte proporcionada de los datos con un algoritmo hash especificado. (Heredado de ECDsa) |
| VerifyData(Byte[], Int32, Int32, Byte[]) |
Comprueba una firma para la longitud especificada de los datos, comenzando en el desplazamiento especificado. |
| VerifyData(Stream, Byte[], HashAlgorithmName) |
Comprueba que una firma digital es adecuada para la clave actual y proporciona datos con un algoritmo hash especificado. (Heredado de ECDsa) |
| VerifyData(Stream, Byte[]) |
Comprueba la firma digital del flujo de datos especificado, leyendo al final del flujo. |
| VerifyHash(Byte[], Byte[]) |
Comprueba que una firma digital es adecuada para la clave actual y el 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) |