ECDsaCng Clase

Definición

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)

Se aplica a