ECDsaCng Classe

Définition

Fournit une implémentation CNG (Cryptography Next Generation) de l’algorithme ecDSA (Elliptic Curve Digital Signature Algorithm).

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 la ECDsaCng classe pour signer un message et comment utiliser la signature pour vérifier que le message n’a pas été modifié.

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

Remarques

Cette classe ne doit être utilisée que directement lors de l’interopérabilité de plateforme avec la bibliothèque CNG Windows. Lorsque l’interopérabilité de plateforme n’est pas nécessaire, vous devez utiliser les ECDsa.Create méthodes de fabrique au lieu d’une implémentation dérivée spécifique.

Constructeurs

Nom Description
ECDsaCng()

Initialise une nouvelle instance de la ECDsaCng classe avec une paire de clés aléatoire.

ECDsaCng(CngKey)

Initialise une nouvelle instance de la ECDsaCng classe à l’aide de l’objet spécifié CngKey .

ECDsaCng(ECCurve)

Initialise une nouvelle instance de la classe dont la ECDsaCng paire de clés publique/privée est générée sur la courbe spécifiée.

ECDsaCng(Int32)

Initialise une nouvelle instance de la ECDsaCng classe avec une taille de clé cible spécifiée.

Champs

Nom Description
KeySizeValue

Représente la taille, en bits, du module de clé utilisé par l’algorithme asymétrique.

(Hérité de AsymmetricAlgorithm)
LegalKeySizesValue

Spécifie les tailles de clé prises en charge par l’algorithme asymétrique.

(Hérité de AsymmetricAlgorithm)

Propriétés

Nom Description
HashAlgorithm

Obtient ou définit l’algorithme de hachage à utiliser lors de la signature et de la vérification des données.

Key

Obtient ou définit la clé à utiliser lors de la signature et de la vérification des données.

KeyExchangeAlgorithm

Obtient le nom de l’algorithme d’échange de clés.

(Hérité de ECDsa)
KeySize

Obtient ou définit la taille, en bits, du module de clé utilisé par l’algorithme asymétrique.

(Hérité de AsymmetricAlgorithm)
LegalKeySizes

Obtient les tailles de clé prises en charge par l’algorithme asymétrique.

(Hérité de AsymmetricAlgorithm)
SignatureAlgorithm

Obtient le nom de l’algorithme de signature.

(Hérité de ECDsa)

Méthodes

Nom Description
Clear()

Libère toutes les ressources utilisées par la AsymmetricAlgorithm classe.

(Hérité de AsymmetricAlgorithm)
Dispose()

Libère toutes les ressources utilisées par l’instance actuelle de la AsymmetricAlgorithm classe.

(Hérité de AsymmetricAlgorithm)
Dispose(Boolean)

Libère les ressources non managées utilisées par la AsymmetricAlgorithm classe et libère éventuellement les ressources managées.

(Hérité de AsymmetricAlgorithm)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
ExportExplicitParameters(Boolean)

Exporte les paramètres de courbe clé et explicite utilisés par l’objet ECC (Elliptic curve cryptography) dans un ECParameters objet.

ExportParameters(Boolean)

Exporte la clé utilisée par l’objet ECC (Elliptic Curve Cryptography) dans un ECParameters objet. Si la clé a été créée en tant que courbe nommée, le Curve champ contient des paramètres de courbe nommés ; sinon, il contient des paramètres explicites.

FromXmlString(String, ECKeyXmlFormat)

Désérialise les informations de clé d’une chaîne XML à l’aide du format spécifié.

FromXmlString(String)

Cette méthode n’est pas implémentée.

GenerateKey(ECCurve)

Génère une nouvelle paire de clés publique/privée éphémère pour la courbe spécifiée, en remplaçant la clé actuelle.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

En cas de substitution dans une classe dérivée, calcule la valeur de hachage de la partie spécifiée d’un tableau d’octets à l’aide de l’algorithme de hachage spécifié.

(Hérité de ECDsa)
HashData(Stream, HashAlgorithmName)

En cas de substitution dans une classe dérivée, calcule la valeur de hachage du flux binaire spécifié à l’aide de l’algorithme de hachage spécifié.

(Hérité de ECDsa)
ImportParameters(ECParameters)

Remplace la clé existante avec laquelle l’instance actuelle fonctionne en créant une nouvelle CngKey pour la structure des paramètres.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
SignData(Byte[], HashAlgorithmName)

Calcule la valeur de hachage du tableau d’octets spécifié à l’aide de l’algorithme de hachage spécifié et signe la valeur de hachage résultante.

(Hérité de ECDsa)
SignData(Byte[], Int32, Int32, HashAlgorithmName)

Calcule la valeur de hachage d’une partie du tableau d’octets spécifié à l’aide de l’algorithme de hachage spécifié et signe la valeur de hachage résultante.

(Hérité de ECDsa)
SignData(Byte[], Int32, Int32)

Génère une signature numérique pour la longueur spécifiée des données, en commençant par le décalage spécifié.

SignData(Byte[])

Génère une signature pour les données spécifiées.

SignData(Stream, HashAlgorithmName)

Calcule la valeur de hachage du flux spécifié à l’aide de l’algorithme de hachage spécifié et signe la valeur de hachage résultante.

(Hérité de ECDsa)
SignData(Stream)

Génère une signature pour le flux de données spécifié, en lisant à la fin du flux.

SignHash(Byte[])

Génère une signature pour la valeur de hachage spécifiée.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
ToXmlString(Boolean)

Cette méthode n’est pas implémentée.

ToXmlString(ECKeyXmlFormat)

Sérialise les informations de clé dans une chaîne XML à l’aide du format spécifié.

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

Vérifie qu’une signature numérique est appropriée pour la clé actuelle et fournit des données avec un algorithme de hachage spécifié.

(Hérité de ECDsa)
VerifyData(Byte[], Byte[])

Vérifie la signature numérique des données spécifiées.

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

Vérifie qu’une signature numérique est appropriée pour la clé actuelle et que la partie fournie des données avec un algorithme de hachage spécifié.

(Hérité de ECDsa)
VerifyData(Byte[], Int32, Int32, Byte[])

Vérifie une signature pour la longueur spécifiée des données, en commençant par le décalage spécifié.

VerifyData(Stream, Byte[], HashAlgorithmName)

Vérifie qu’une signature numérique est appropriée pour la clé actuelle et fournit des données avec un algorithme de hachage spécifié.

(Hérité de ECDsa)
VerifyData(Stream, Byte[])

Vérifie la signature numérique du flux de données spécifié, en lisant à la fin du flux.

VerifyHash(Byte[], Byte[])

Vérifie qu’une signature numérique est appropriée pour la clé actuelle et le hachage de données fourni.

Implémentations d’interfaces explicites

Nom Description
IDisposable.Dispose()

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Pour obtenir une description de ce membre, consultez Dispose().

(Hérité de AsymmetricAlgorithm)

S’applique à