ECDsaCng Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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) |