ECDsaCng ECDsaCng ECDsaCng ECDsaCng Class

Définition

Fournit une implémentation CNG (Cryptography Next Generation) de l’algorithme 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
Héritage

Exemples

L’exemple suivant montre comment utiliser le ECDsaCng classe pour signer un message et l’utilisation de la signature pour vérifier que le message n’a pas été modifié.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);

             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
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 'Main
End Class 'Alice 


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 'Receive
End Class 'Bob 

Remarques

Cette classe est dérivée de la ECDsa classe de base abstraite.This class derives from the ECDsa abstract base class.

Constructeurs

ECDsaCng() ECDsaCng() ECDsaCng() ECDsaCng()

Initialise une nouvelle instance de la classe ECDsaCng avec une paire de clés aléatoire.Initializes a new instance of the ECDsaCng class with a random key pair.

ECDsaCng(CngKey) ECDsaCng(CngKey) ECDsaCng(CngKey) ECDsaCng(CngKey)

Initialise une nouvelle instance de la classe ECDsaCng à l'aide de l'objet CngKey spécifié.Initializes a new instance of the ECDsaCng class by using the specified CngKey object.

ECDsaCng(ECCurve) ECDsaCng(ECCurve) ECDsaCng(ECCurve) ECDsaCng(ECCurve)

Initialise une nouvelle instance de la classe ECDsaCng dont la paire de clés publique/privée est générée sur la courbe spécifiée.Initializes a new instance of the ECDsaCng class whose public/private key pair is generated over the specified curve.

ECDsaCng(Int32) ECDsaCng(Int32) ECDsaCng(Int32) ECDsaCng(Int32)

Initialise une nouvelle instance de la classe ECDsaCng avec une paire de clés aléatoire, à l’aide de la taille de clé spécifiée.Initializes a new instance of the ECDsaCng class with a random key pair, using the specified key size.

Propriétés

HashAlgorithm HashAlgorithm HashAlgorithm HashAlgorithm

Obtient ou définit l'algorithme de hachage à utiliser pour la signature et la vérification des données.Gets or sets the hash algorithm to use when signing and verifying data.

Key Key Key Key

Obtient ou définit la clé à utiliser lors de la signature et de la vérification des données.Gets or sets the key to use when signing and verifying data.

KeyExchangeAlgorithm KeyExchangeAlgorithm KeyExchangeAlgorithm KeyExchangeAlgorithm

Obtient le nom de l'algorithme d'échange de clés.Gets the name of the key exchange algorithm.

(Inherited from ECDsa)
KeySize KeySize KeySize KeySize
LegalKeySizes LegalKeySizes LegalKeySizes LegalKeySizes
SignatureAlgorithm SignatureAlgorithm SignatureAlgorithm SignatureAlgorithm

Obtient le nom de l'algorithme de signature.Gets the name of the signature algorithm.

(Inherited from ECDsa)

Méthodes

Clear() Clear() Clear() Clear()

Libère toutes les ressources utilisées par la classe AsymmetricAlgorithm.Releases all resources used by the AsymmetricAlgorithm class.

(Inherited from AsymmetricAlgorithm)
Dispose() Dispose() Dispose() Dispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe AsymmetricAlgorithm.Releases all resources used by the current instance of the AsymmetricAlgorithm class.

(Inherited from AsymmetricAlgorithm)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Libère les ressources non managées utilisées par la classe AsymmetricAlgorithm et libère éventuellement les ressources managées.Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.

(Inherited from AsymmetricAlgorithm)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
ExportECPrivateKey() ExportECPrivateKey() ExportECPrivateKey() ExportECPrivateKey() Inherited from ECDsa
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters) ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters) ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters) ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters) Inherited from AsymmetricAlgorithm
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters) ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters) ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters) ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters) Inherited from AsymmetricAlgorithm
ExportExplicitParameters(Boolean) ExportExplicitParameters(Boolean) ExportExplicitParameters(Boolean) ExportExplicitParameters(Boolean)

Exporte les paramètres de clé et de courbe explicite utilisés par l’objet ECC dans un objet ECParameters.Exports the key and explicit curve parameters used by the Elliptic curve cryptography (ECC) object into an ECParameters object.

ExportParameters(Boolean) ExportParameters(Boolean) ExportParameters(Boolean) ExportParameters(Boolean)

Exporte la clé utilisée par l’objet ECC dans un objet ECParameters.Exports the key used by the Elliptic curve cryptography (ECC) object into an ECParameters object. Si la clé a été créée en tant que courbe nommée, le champ Curve contient les paramètres de la courbe nommée, sinon il contient des paramètres explicites.If the key was created as a named curve, the Curve field contains named curve parameters; otherwise, it contains explicit parameters.

ExportPkcs8PrivateKey() ExportPkcs8PrivateKey() ExportPkcs8PrivateKey() ExportPkcs8PrivateKey() Inherited from AsymmetricAlgorithm
ExportSubjectPublicKeyInfo() ExportSubjectPublicKeyInfo() ExportSubjectPublicKeyInfo() ExportSubjectPublicKeyInfo() Inherited from AsymmetricAlgorithm
FromXmlString(String) FromXmlString(String) FromXmlString(String) FromXmlString(String)

Cette méthode n’est pas implémentée.This method is not implemented.

FromXmlString(String, ECKeyXmlFormat) FromXmlString(String, ECKeyXmlFormat) FromXmlString(String, ECKeyXmlFormat) FromXmlString(String, ECKeyXmlFormat)

Désérialise les informations de clés d'une chaîne XML en utilisant le format spécifié.Deserializes the key information from an XML string by using the specified format.

GenerateKey(ECCurve) GenerateKey(ECCurve) GenerateKey(ECCurve) GenerateKey(ECCurve)

Génère une clé à utiliser pour l’algorithme ECDsaCng.Generates a key to use for the ECDsaCng algorithm.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName) HashData(Byte[], Int32, Int32, HashAlgorithmName) HashData(Byte[], Int32, Int32, HashAlgorithmName) HashData(Byte[], Int32, Int32, HashAlgorithmName)

En cas de substitution dans une classe dérivée, calcule la valeur de hachage de la partie indiquée d'un tableau d'octets à l'aide de l'algorithme de hachage spécifié.When overridden in a derived class, computes the hash value of the specified portion of a byte array by using the specified hashing algorithm.

(Inherited from ECDsa)
HashData(Stream, HashAlgorithmName) HashData(Stream, HashAlgorithmName) HashData(Stream, HashAlgorithmName) HashData(Stream, HashAlgorithmName)

En cas de substitution dans une classe dérivée, calcule la valeur de hachage du flux binaire indiqué à l'aide de l'algorithme de hachage spécifié.When overridden in a derived class, computes the hash value of the specified binary stream by using the specified hashing algorithm.

(Inherited from ECDsa)
ImportECPrivateKey(ReadOnlySpan<Byte>, Int32) ImportECPrivateKey(ReadOnlySpan<Byte>, Int32) ImportECPrivateKey(ReadOnlySpan<Byte>, Int32) ImportECPrivateKey(ReadOnlySpan<Byte>, Int32) Inherited from ECDsa
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) Inherited from AsymmetricAlgorithm
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32) ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32) ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32) ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32) Inherited from AsymmetricAlgorithm
ImportParameters(ECParameters) ImportParameters(ECParameters) ImportParameters(ECParameters) ImportParameters(ECParameters)

Remplace la clé existante utilisée par l'instance actuelle en créant un CngKey pour la structure des paramètres.Replaces the existing key that the current instance is working with by creating a new CngKey for the parameters structure.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32) ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32) ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32) ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32) Inherited from AsymmetricAlgorithm
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32) ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32) ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32) ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32) Inherited from AsymmetricAlgorithm
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
SignData(Byte[]) SignData(Byte[]) SignData(Byte[]) SignData(Byte[])

Génère une signature pour les données spécifiées.Generates a signature for the specified data.

SignData(Byte[], HashAlgorithmName) SignData(Byte[], HashAlgorithmName) SignData(Byte[], HashAlgorithmName) SignData(Byte[], HashAlgorithmName)

Calcule la valeur de hachage du tableau d'octets indiqué à l'aide de l'algorithme de hachage spécifié et signe la valeur de hachage obtenue.Computes the hash value of the specified byte array using the specified hash algorithm and signs the resulting hash value.

(Inherited from ECDsa)
SignData(Byte[], Int32, Int32) SignData(Byte[], Int32, Int32) SignData(Byte[], Int32, Int32) SignData(Byte[], Int32, Int32)

Génère une signature numérique pour la longueur spécifiée de données, en commençant à l'offset spécifié.Generates a digital signature for the specified length of data, beginning at the specified offset.

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

Calcule la valeur de hachage d'une partie du tableau d'octets indiqué à l'aide de l'algorithme de hachage spécifié et signe la valeur de hachage obtenue.Computes the hash value of a portion of the specified byte array using the specified hash algorithm and signs the resulting hash value.

(Inherited from ECDsa)
SignData(Stream) SignData(Stream) SignData(Stream) SignData(Stream)

Génère une signature pour le flux de données spécifié, en lisant jusqu'à la fin le flux de données.Generates a signature for the specified data stream, reading to the end of the stream.

SignData(Stream, HashAlgorithmName) SignData(Stream, HashAlgorithmName) SignData(Stream, HashAlgorithmName) SignData(Stream, HashAlgorithmName)

Calcule la valeur de hachage du flux indiqué à l'aide de l'algorithme de hachage spécifié et signe la valeur de hachage obtenue.Computes the hash value of the specified stream using the specified hash algorithm and signs the resulting hash value.

(Inherited from ECDsa)
SignHash(Byte[]) SignHash(Byte[]) SignHash(Byte[]) SignHash(Byte[])

Génère une signature pour la valeur de hachage spécifiée.Generates a signature for the specified hash value.

ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)
ToXmlString(Boolean) ToXmlString(Boolean) ToXmlString(Boolean) ToXmlString(Boolean)

Cette méthode n’est pas implémentée.This method is not implemented.

ToXmlString(ECKeyXmlFormat) ToXmlString(ECKeyXmlFormat) ToXmlString(ECKeyXmlFormat) ToXmlString(ECKeyXmlFormat)

Sérialise les informations de clés en une chaîne XML en utilisant le format spécifié.Serializes the key information to an XML string by using the specified format.

TryExportECPrivateKey(Span<Byte>, Int32) TryExportECPrivateKey(Span<Byte>, Int32) TryExportECPrivateKey(Span<Byte>, Int32) TryExportECPrivateKey(Span<Byte>, Int32) Inherited from ECDsa
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32) TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32) TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32) TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32) Inherited from AsymmetricAlgorithm
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32) TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32) TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32) TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32) Inherited from AsymmetricAlgorithm
TryExportPkcs8PrivateKey(Span<Byte>, Int32) TryExportPkcs8PrivateKey(Span<Byte>, Int32) TryExportPkcs8PrivateKey(Span<Byte>, Int32) TryExportPkcs8PrivateKey(Span<Byte>, Int32) Inherited from AsymmetricAlgorithm
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32) TryExportSubjectPublicKeyInfo(Span<Byte>, Int32) TryExportSubjectPublicKeyInfo(Span<Byte>, Int32) TryExportSubjectPublicKeyInfo(Span<Byte>, Int32) Inherited from AsymmetricAlgorithm
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) Inherited from ECDsa
TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) Inherited from ECDsa
TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)
VerifyData(Byte[], Byte[]) VerifyData(Byte[], Byte[]) VerifyData(Byte[], Byte[]) VerifyData(Byte[], Byte[])

Vérifie la signature numérique des données spécifiées.Verifies the digital signature of the specified data.

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

Vérifie qu'une signature numérique est valide en calculant la valeur de hachage des données indiquées à l'aide de l'algorithme de hachage spécifié et en la comparant à la signature fournie.Verifies that a digital signature is valid by calculating the hash value of the specified data using the specified hash algorithm and comparing it to the provided signature.

(Inherited from ECDsa)
VerifyData(Byte[], Int32, Int32, Byte[]) VerifyData(Byte[], Int32, Int32, Byte[]) VerifyData(Byte[], Int32, Int32, Byte[]) VerifyData(Byte[], Int32, Int32, Byte[])

Vérifie une signature pour la longueur spécifiée de données, en commençant à l'offset spécifié.Verifies a signature for the specified length of data, beginning at the specified offset.

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

Vérifie qu'une signature numérique est valide en calculant la valeur de hachage des données dans une partie d'un tableau d'octets à l'aide de l'algorithme de hachage spécifié et en la comparant à la signature fournie.Verifies that a digital signature is valid by calculating the hash value of the data in a portion of a byte array using the specified hash algorithm and comparing it to the provided signature.

(Inherited from ECDsa)
VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName) VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName) VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName) VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName) Inherited from ECDsa
VerifyData(Stream, Byte[]) VerifyData(Stream, Byte[]) VerifyData(Stream, Byte[]) VerifyData(Stream, Byte[])

Vérifie la signature numérique du flux de données spécifié, en lisant jusqu'à la fin le flux de données.Verifies the digital signature of the specified data stream, reading to the end of the stream.

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

Vérifie qu'une signature numérique est valide en calculant la valeur de hachage du flux indiqué à l'aide de l'algorithme de hachage spécifié et en la comparant à la signature fournie.Verifies that a digital signature is valid by calculating the hash value of the specified stream using the specified hash algorithm and comparing it to the provided signature.

(Inherited from ECDsa)
VerifyHash(Byte[], Byte[]) VerifyHash(Byte[], Byte[]) VerifyHash(Byte[], Byte[]) VerifyHash(Byte[], Byte[])

Vérifie la signature numérique spécifiée par rapport à une valeur de hachage spécifiée.Verifies the specified digital signature against a specified hash value.

VerifyHash(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>) VerifyHash(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>) VerifyHash(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>) VerifyHash(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

Champs

KeySizeValue KeySizeValue KeySizeValue KeySizeValue

Représente la taille, en bits, du modulo de la clé utilisé par l'algorithme asymétrique.Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(Inherited from AsymmetricAlgorithm)
LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue

Spécifie les tailles de clé prises en charge par l'algorithme asymétrique.Specifies the key sizes that are supported by the asymmetric algorithm.

(Inherited from AsymmetricAlgorithm)

Implémentations d’interfaces explicites

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Pour obtenir une description de ce membre, consultez Dispose().For a description of this member, see Dispose().

(Inherited from AsymmetricAlgorithm)

S’applique à