ECDsaCng Classe

Definição

Fornece uma implementação de Criptografia de Nova Geração (CNG) 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 seguinte mostra como usar a ECDsaCng classe para assinar uma mensagem e como usar a assinatura para verificar que 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

Observações

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

Construtores

Name 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 ao longo da curva especificada.

ECDsaCng(Int32)

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

Campos

Name 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 suportados pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)

Propriedades

Name Description
HashAlgorithm

Obtém ou define o algoritmo de hash para usar ao assinar e verificar dados.

Key

Obtém ou define a chave para usar 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 suportados pelo algoritmo assimétrico.

(Herdado de AsymmetricAlgorithm)
SignatureAlgorithm

Recebe o nome do algoritmo de assinatura.

(Herdado de ECDsa)

Métodos

Name Description
Clear()

Liberta todos os recursos usados pela AsymmetricAlgorithm turma.

(Herdado de AsymmetricAlgorithm)
Dispose()

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

(Herdado de AsymmetricAlgorithm)
Dispose(Boolean)

Liberta os recursos não geridos usados pela AsymmetricAlgorithm classe e, opcionalmente, liberta os recursos geridos.

(Herdado de AsymmetricAlgorithm)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
ExportExplicitParameters(Boolean)

Exporta os parâmetros chave e explícitos da curva usados pelo objeto de criptografia de curvas elípticas (ECC) para um ECParameters objeto.

ExportParameters(Boolean)

Exporta a chave usada pelo objeto de criptografia de curvas elípticas (ECC) 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, contém parâmetros explícitos.

FromXmlString(String, ECKeyXmlFormat)

Desserializa a informação chave de uma cadeia XML usando o formato especificado.

FromXmlString(String)

Este 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 função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

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

Quando sobrescrito numa classe derivada, calcula o valor de hash da porção especificada de um array de bytes usando o algoritmo de hash especificado.

(Herdado de ECDsa)
HashData(Stream, HashAlgorithmName)

Quando sobreposto numa 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 que a instância atual está a trabalhar criando uma nova CngKey para a estrutura de parâmetros.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

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

Calcula o valor de hash do array de bytes especificado 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 do array de bytes especificado 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é ao final do fluxo.

SignHash(Byte[])

Gera uma assinatura para o valor de hash especificado.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
ToXmlString(Boolean)

Este método não é implementado.

ToXmlString(ECKeyXmlFormat)

Serializa a informação chave para uma string XML usando o formato especificado.

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

Verifica se uma assinatura digital é adequada 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 uma porção de 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 é adequada 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é ao final do fluxo.

VerifyHash(Byte[], Byte[])

Verifica se uma assinatura digital é adequada para a chave atual e para o hash dos dados fornecidos.

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código.

Para uma descrição deste elemento, veja Dispose().

(Herdado de AsymmetricAlgorithm)

Aplica-se a