# ECDsaCng Clase

## Definición

Proporciona una implementación de CNG (Cryptography Next Generation) del algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm).Provides a Cryptography Next Generation (CNG) implementation of the Elliptic Curve Digital Signature Algorithm (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 utilizar la ECDsaCng clase para firmar un mensaje y cómo usar la firma para comprobar que el mensaje no se ha modificado.The following example shows how to use the ECDsaCng class to sign a message and how to use the signature to verify that the message has not been altered.

``````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);

}
}
}
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
}
}
}
``````
``````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)
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
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.This class should only be used directly when doing platform interop with the Windows CNG library. Cuando no se necesita la interoperabilidad de plataforma, se deben usar los ECDsa.Create métodos de generador en lugar de una implementación derivada concreta.When platform interop is not needed, you should use the ECDsa.Create factory methods instead of a specific derived implementation.

## Constructores

 Inicializa una nueva instancia de la clase ECDsaCng con un par de claves aleatorio.Initializes a new instance of the ECDsaCng class with a random key pair. Inicializa una nueva instancia de la clase ECDsaCng mediante el objeto CngKey especificado.Initializes a new instance of the ECDsaCng class by using the specified CngKey object. Inicializa una nueva instancia de la clase ECDsaCng cuyo par de claves pública-privada se genera sobre la curva especificada.Initializes a new instance of the ECDsaCng class whose public/private key pair is generated over the specified curve. Inicializa una nueva instancia de la clase ECDsaCng con un tamaño de clave de destino especificado.Initializes a new instance of the ECDsaCng class with a specified target key size.

## Campos

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