ECDsaCng Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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) |