ECDsaCng ECDsaCng ECDsaCng ECDsaCng Class

Definice

Poskytuje implementaci Kryptografické služby nové generace (CNG) z křivku digitální podpis algoritmů ECDSA (Elliptic).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
Dědičnost

Příklady

Následující příklad ukazuje způsob použití ECDsaCng třídy k podepsání zprávy a ověřte, že zprávy nebyl změněn pomocí podpis.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 

Poznámky

Tato třída je odvozena z ECDsa abstraktní základní třída.This class derives from the ECDsa abstract base class.

Konstruktory

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

Inicializuje novou instanci třídy ECDsaCng třída s atributem náhodný pár klíčů.Initializes a new instance of the ECDsaCng class with a random key pair.

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

Inicializuje novou instanci třídy ECDsaCng třídy pomocí zadaného CngKey objektu.Initializes a new instance of the ECDsaCng class by using the specified CngKey object.

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

Inicializuje novou instanci třídy ECDsaCng třídy, jejíž dvojice veřejného/soukromého klíče je generován prostřednictvím zadaná křivka.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)

Inicializuje novou instanci třídy ECDsaCng třída s atributem náhodný pár klíčů, pomocí velikost určeného klíče.Initializes a new instance of the ECDsaCng class with a random key pair, using the specified key size.

Vlastnosti

HashAlgorithm HashAlgorithm HashAlgorithm HashAlgorithm

Získá nebo nastaví algoritmus hash pro použití při přihlašování a ověřování dat.Gets or sets the hash algorithm to use when signing and verifying data.

Key Key Key Key

Získá nebo nastaví klíč pro použití při přihlašování a ověřování dat.Gets or sets the key to use when signing and verifying data.

KeyExchangeAlgorithm KeyExchangeAlgorithm KeyExchangeAlgorithm KeyExchangeAlgorithm

Získá název chcete algoritmus výměny klíčů.Gets the name of the key exchange algorithm.

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

Získá název podpisového algoritmu.Gets the name of the signature algorithm.

(Inherited from ECDsa)

Metody

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

Uvolní všechny prostředky používané AsymmetricAlgorithm třídy.Releases all resources used by the AsymmetricAlgorithm class.

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

Uvolní všechny prostředky používané aktuální instancí třídy AsymmetricAlgorithm třídy.Releases all resources used by the current instance of the AsymmetricAlgorithm class.

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

Uvolní nespravované prostředky využívané třídou AsymmetricAlgorithm a volitelně také spravované prostředky.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)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.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)

Exportuje se klíč a explicitní křivky parametry používané tímto objektem eliptické křivky šifrování (ECC Elliptic) do ECParameters objektu.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)

Exportuje klíče používané tímto objektem eliptické křivky šifrování (ECC Elliptic) do ECParameters objektu.Exports the key used by the Elliptic curve cryptography (ECC) object into an ECParameters object. Pokud klíč byl vytvořen jako pojmenované křivky Curve pole obsahuje pojmenované parametry křivky; v opačném případě obsahuje explicitní parametry.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)

Tato metoda není implementována.This method is not implemented.

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

Informace o klíči z řetězce XML deserializuje pomocí určeného formátu.Deserializes the key information from an XML string by using the specified format.

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

Vygenerování klíče pro účely algoritmu ECDsaCng.Generates a key to use for the ECDsaCng algorithm.

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

Slouží jako výchozí funkce hash.Serves as the default hash function.

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

Získá Type aktuální instance.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)

Při přepisu v odvozené třídě, vypočítá hodnotu hash specifikovanou část bajtového pole pomocí zadaný hashovací algoritmus.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)

Při přepisu v odvozené třídě, vypočítá hodnotu hash zadaný binární datový proud s použitím zadaného algoritmu hash.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)

Nahradí stávající klíč, zda aktuální instance funguje s vytvořením nového CngKey pro strukturu parametry.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()

Vytvoří Mělkou kopii aktuální Object.Creates a shallow copy of the current Object.

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

Generuje podpis pro zadaná data.Generates a signature for the specified data.

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

Vypočítá hodnotu hash zadané bajtové pole pomocí algoritmu zadanou hodnotu hash a podepíše výslednou hodnotu hash.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)

Generuje digitální podpis pro zadanou délku dat od určeného posunutí.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)

Vypočítá hodnotu hash z část zadané bajtové pole pomocí zadaného hashovacího algoritmu a podepisuje výsledné hodnoty hash.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)

Generuje podpis pro zadaný datový proud čtení do konce datového proudu.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)

Vypočítá hodnotu hash zadaného datového proudu pomocí zadaného hashovacího algoritmu a podepisuje výsledné hodnoty hash.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[])

Generuje podpis pro hodnotu zadanou hodnotu hash.Generates a signature for the specified hash value.

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

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

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

Tato metoda není implementována.This method is not implemented.

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

Serializuje klíčové informace do řetězce XML pomocí určeného formátu.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[])

Ověří digitální podpis zadaná data.Verifies the digital signature of the specified data.

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

Ověří, jestli je digitální podpis výpočtem hodnoty hash zadaná data pomocí zadaného platná hodnota hash algoritmu a porovná je s poskytnutého signatury.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[])

Ověří podpis pro zadanou délku dat od určeného posunutí.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)

Ověří, jestli je digitální podpis platný ve výpočtu hodnoty hash dat v části byte pole pomocí zadaného hashovacího algoritmu a srovnáním s poskytnutého signatury.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[])

Ověří digitální podpis na zadaný datový proud čtení do konce datového proudu.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)

Ověří, jestli digitální podpis je platný podle výpočtu hodnoty hash zadaného datového proudu pomocí zadaného hashovacího algoritmu a srovnáním s poskytnutého signatury.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[])

Ověří zadaný digitální podpis na hodnotu zadanou hodnotu hash.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>)

Pole

KeySizeValue KeySizeValue KeySizeValue KeySizeValue

Představuje velikost v bitech, modulu klíče používané asymetrického algoritmu.Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(Inherited from AsymmetricAlgorithm)
LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue LegalKeySizesValue

Určuje velikostí klíče, které jsou podporovány asymetrického algoritmu.Specifies the key sizes that are supported by the asymmetric algorithm.

(Inherited from AsymmetricAlgorithm)

Explicitní implementace rozhraní

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

Popis tohoto členu viz Dispose().For a description of this member, see Dispose().

(Inherited from AsymmetricAlgorithm)

Platí pro