ECDsaCng Classe

Definição

Fornece uma implementação de CNG (Cryptography Next Generation) do Algoritmo de Assinatura 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
Herança

Exemplos

O exemplo a seguir mostra como usar a ECDsaCng classe para assinar uma mensagem e como usar a assinatura para verificar se a mensagem não foi alterada.

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

Comentários

Essa classe só deve ser usada diretamente ao fazer interoperabilidade de plataforma com a biblioteca CNG Windows. Quando a interoperabilidade de plataforma não é necessária, você deve usar os ECDsa.Create métodos de fábrica em vez de uma implementação derivada específica.

Construtores

Nome Description
ECDsaCng()

Inicializa uma nova instância da ECDsaCng classe com um par de chaves aleatórias.

ECDsaCng(CngKey)

Inicializa uma nova instância da ECDsaCng classe usando o objeto especificado CngKey .

ECDsaCng(ECCurve)

Inicializa uma nova instância da ECDsaCng classe cujo par de chaves pública/privada é gerado na curva especificada.

ECDsaCng(Int32)

Inicializa uma nova instância da ECDsaCng classe com um tamanho de chave de destino especificado.

Campos

Nome Description
KeySizeValue

Representa o tamanho, em bits, do módulo de chave usado pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
LegalKeySizesValue

Especifica os tamanhos de chave compatíveis com o algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)

Propriedades

Nome Description
HashAlgorithm

Obtém ou define o algoritmo de hash a ser usado ao assinar e verificar dados.

Key

Obtém ou define a chave a ser usada ao assinar e verificar dados.

KeyExchangeAlgorithm

Obtém o nome do algoritmo de troca de chaves.

(Herdado de ECDsa)
KeySize

Obtém ou define o tamanho, em bits, do módulo de chave usado pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
LegalKeySizes

Obtém os tamanhos de chave compatíveis com o algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
SignatureAlgorithm

Obtém o nome do algoritmo de assinatura.

(Herdado de ECDsa)

Métodos

Nome Description
Clear()

Libera todos os recursos usados pela AsymmetricAlgorithm classe.

(Herdado de AsymmetricAlgorithm)
Dispose()

Libera todos os recursos usados pela instância atual da AsymmetricAlgorithm classe.

(Herdado de AsymmetricAlgorithm)
Dispose(Boolean)

Libera os recursos não gerenciados usados pela AsymmetricAlgorithm classe e, opcionalmente, libera os recursos gerenciados.

(Herdado de AsymmetricAlgorithm)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
ExportExplicitParameters(Boolean)

Exporta os parâmetros de chave e curva explícita usados pelo objeto ECC (criptografia de curva elíptica) em um ECParameters objeto.

ExportParameters(Boolean)

Exporta a chave usada pelo objeto ECC (criptografia de curva elíptica) para um ECParameters objeto. Se a chave foi criada como uma curva nomeada, o Curve campo contém parâmetros de curva nomeados; caso contrário, ele contém parâmetros explícitos.

FromXmlString(String, ECKeyXmlFormat)

Desserializa as informações de chave de uma cadeia de caracteres XML usando o formato especificado.

FromXmlString(String)

Esse método não é implementado.

GenerateKey(ECCurve)

Gera um novo par de chaves pública/privada efêmera para a curva especificada, substituindo a chave atual.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

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

Quando substituído em uma classe derivada, calcula o valor de hash da parte especificada de uma matriz de bytes usando o algoritmo de hash especificado.

(Herdado de ECDsa)
HashData(Stream, HashAlgorithmName)

Quando substituído em uma classe derivada, calcula o valor de hash do fluxo binário especificado usando o algoritmo de hash especificado.

(Herdado de ECDsa)
ImportParameters(ECParameters)

Substitui a chave existente com a qual a instância atual está trabalhando criando uma nova CngKey para a estrutura de parâmetros.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

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

Calcula o valor de hash da matriz de bytes especificada usando o algoritmo de hash especificado e assina o valor de hash resultante.

(Herdado de ECDsa)
SignData(Byte[], Int32, Int32, HashAlgorithmName)

Calcula o valor de hash de uma parte da matriz de bytes especificada usando o algoritmo de hash especificado e assina o valor de hash resultante.

(Herdado de ECDsa)
SignData(Byte[], Int32, Int32)

Gera uma assinatura digital para o comprimento especificado dos dados, começando no deslocamento especificado.

SignData(Byte[])

Gera uma assinatura para os dados especificados.

SignData(Stream, HashAlgorithmName)

Calcula o valor de hash do fluxo especificado usando o algoritmo de hash especificado e assina o valor de hash resultante.

(Herdado de ECDsa)
SignData(Stream)

Gera uma assinatura para o fluxo de dados especificado, lendo até o final do fluxo.

SignHash(Byte[])

Gera uma assinatura para o valor de hash especificado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
ToXmlString(Boolean)

Esse método não é implementado.

ToXmlString(ECKeyXmlFormat)

Serializa as informações de chave para uma cadeia de caracteres XML usando o formato especificado.

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

Verifica se uma assinatura digital é apropriada para a chave atual e fornece dados com um algoritmo de hash especificado.

(Herdado de ECDsa)
VerifyData(Byte[], Byte[])

Verifica a assinatura digital dos dados especificados.

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

Verifica se uma assinatura digital é apropriada para a chave atual e fornece parte dos dados com um algoritmo de hash especificado.

(Herdado de ECDsa)
VerifyData(Byte[], Int32, Int32, Byte[])

Verifica uma assinatura para o comprimento especificado dos dados, começando no deslocamento especificado.

VerifyData(Stream, Byte[], HashAlgorithmName)

Verifica se uma assinatura digital é apropriada para a chave atual e fornece dados com um algoritmo de hash especificado.

(Herdado de ECDsa)
VerifyData(Stream, Byte[])

Verifica a assinatura digital do fluxo de dados especificado, lendo até o final do fluxo.

VerifyHash(Byte[], Byte[])

Verifica se uma assinatura digital é apropriada para a chave atual e o hash de dados fornecido.

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.

Para obter uma descrição deste membro, consulte Dispose().

(Herdado de AsymmetricAlgorithm)

Aplica-se a