ECDsaCng 클래스

정의

ECDSA(타원 곡선 디지털 서명 알고리즘)의 CNG(Cryptography Next Generation) 구현을 제공합니다.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
상속

예제

다음 예제에서는 사용 하는 방법의 ECDsaCng 서명을 사용 하 여 메시지가 변경 되지 않았음을 확인 하는 방법과 메시지를 서명 하는 클래스입니다.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.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

설명

이 클래스에서 파생 되는 ECDsa 추상 기본 클래스입니다.This class derives from the ECDsa abstract base class.

생성자

ECDsaCng()

임의의 키 쌍을 사용하여 ECDsaCng 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ECDsaCng class with a random key pair.

ECDsaCng(CngKey)

지정된 CngKey 개체를 사용하여 ECDsaCng 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ECDsaCng class by using the specified CngKey object.

ECDsaCng(ECCurve)

해당 퍼블릭/프라이빗 키 쌍이 지정된 곡선에서 생성되는 ECDsaCng 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ECDsaCng class whose public/private key pair is generated over the specified curve.

ECDsaCng(Int32)

지정된 키 크기를 사용하여 임의의 키 쌍으로 ECDsaCng 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ECDsaCng class with a random key pair, using the specified key size.

필드

KeySizeValue

비대칭 알고리즘에서 사용하는 키 모듈러스의 크기(비트 단위)를 나타냅니다.Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(다음에서 상속됨 AsymmetricAlgorithm)
LegalKeySizesValue

비대칭 알고리즘에서 지원하는 키 크기를 지정합니다.Specifies the key sizes that are supported by the asymmetric algorithm.

(다음에서 상속됨 AsymmetricAlgorithm)

속성

HashAlgorithm

데이터에 서명하고 확인하는 데 사용할 해시 알고리즘을 가져오거나 설정합니다.Gets or sets the hash algorithm to use when signing and verifying data.

Key

데이터에 서명하거나 확인할 때 사용할 키를 가져오거나 설정합니다.Gets or sets the key to use when signing and verifying data.

KeyExchangeAlgorithm

키 교환 알고리즘의 이름을 가져옵니다.Gets the name of the key exchange algorithm.

(다음에서 상속됨 ECDsa)
KeySize
LegalKeySizes
SignatureAlgorithm

서명 알고리즘의 이름을 가져옵니다.Gets the name of the signature algorithm.

(다음에서 상속됨 ECDsa)

메서드

Clear()

AsymmetricAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the AsymmetricAlgorithm class.

(다음에서 상속됨 AsymmetricAlgorithm)
Dispose()

AsymmetricAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the AsymmetricAlgorithm class.

(다음에서 상속됨 AsymmetricAlgorithm)
Dispose(Boolean)

AsymmetricAlgorithm 클래스에 사용되는 관리되지 않는 리소스를 해제하고, 필요에 따라 관리되는 리소스를 해제합니다.Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.

(다음에서 상속됨 AsymmetricAlgorithm)
Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
ExportECPrivateKey()

ECPrivateKey 형식으로 현재 키를 내보냅니다.Exports the current key in the ECPrivateKey format.

(다음에서 상속됨 ECDsa)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportExplicitParameters(Boolean)

ECC(타원 곡선 암호화) 개체에 사용되는 키 및 명시적 곡선 매개 변수를 ECParameters 개체로 내보냅니다.Exports the key and explicit curve parameters used by the Elliptic curve cryptography (ECC) object into an ECParameters object.

ExportParameters(Boolean)

ECC(타원 곡선 암호화) 개체에 사용되는 키를 ECParameters 개체로 내보냅니다.Exports the key used by the Elliptic curve cryptography (ECC) object into an ECParameters object. 키가 명명된 곡선으로 작성된 경우 Curve 필드에는 명명된 곡선 매개 변수가 포함되고 그렇지 않으면 명시적 매개 변수가 포함됩니다.If the key was created as a named curve, the Curve field contains named curve parameters; otherwise, it contains explicit parameters.

ExportPkcs8PrivateKey()

PKCS#8 PrivateKeyInfo 형식으로 현재 키를 내보냅니다.Exports the current key in the PKCS#8 PrivateKeyInfo format.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

X.509 SubjectPublicKeyInfo 형식으로 된 현재 키의 퍼블릭 키 부분을 내보냅니다.Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.

(다음에서 상속됨 AsymmetricAlgorithm)
FromXmlString(String)

이 메서드가 구현되지 않은 경우This method is not implemented.

FromXmlString(String, ECKeyXmlFormat)

지정된 형식을 사용하여 XML 문자열에서 키 정보를 deserialize합니다.Deserializes the key information from an XML string by using the specified format.

GenerateKey(ECCurve)

ECDsaCng 알고리즘에 사용할 키를 생성합니다.Generates a key to use for the ECDsaCng algorithm.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

파생된 클래스에서 재정의할 때 지정된 해싱 알고리즘을 사용하여 지정된 바이트 배열 부분의 해시 값을 계산합니다.When overridden in a derived class, computes the hash value of the specified portion of a byte array by using the specified hashing algorithm.

(다음에서 상속됨 ECDsa)
HashData(Stream, HashAlgorithmName)

파생된 클래스에서 재정의할 때 지정된 해싱 알고리즘을 사용하여 지정된 이진 스트림의 해시 값을 계산합니다.When overridden in a derived class, computes the hash value of the specified binary stream by using the specified hashing algorithm.

(다음에서 상속됨 ECDsa)
ImportECPrivateKey(ReadOnlySpan<Byte>, Int32)

ECPrivateKey 구조체에서 이 개체의 키를 대체하여 퍼블릭/프라이빗 키 쌍을 가져옵니다.Imports the public/private keypair from an ECPrivateKey structure, replacing the keys for this object.

(다음에서 상속됨 ECDsa)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

바이트 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조체에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a byte-based password, replacing the keys for this object.

(다음에서 상속됨 ECDsa)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

문자 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a char-based password, replacing the keys for this object.

(다음에서 상속됨 ECDsa)
ImportParameters(ECParameters)

매개 변수 구조에 대한 새 CngKey를 만들어 현재 인스턴스에서 사용 중인 기존 키를 바꿉니다.Replaces the existing key that the current instance is working with by creating a new CngKey for the parameters structure.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

해독한 다음 이 개체의 키를 대체하여 PKCS#8 PrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.Imports the public/private keypair from a PKCS#8 PrivateKeyInfo structure after decryption, replacing the keys for this object.

(다음에서 상속됨 ECDsa)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

해독한 다음 이 개체의 키를 대체하여 X.509 SubjectPublicKeyInfo 구조에서 퍼블릭 키를 가져옵니다.Imports the public key from an X.509 SubjectPublicKeyInfo structure after decryption, replacing the keys for this object.

(다음에서 상속됨 ECDsa)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
SignData(Byte[])

지정된 데이터에 대한 서명을 생성합니다.Generates a signature for the specified data.

SignData(Byte[], HashAlgorithmName)

지정된 해시 알고리즘을 사용하여 지정된 바이트 배열의 해시 값을 계산하고 결과 해시 값을 서명합니다.Computes the hash value of the specified byte array using the specified hash algorithm and signs the resulting hash value.

(다음에서 상속됨 ECDsa)
SignData(Byte[], Int32, Int32)

지정된 오프셋에서 시작하여 지정된 길이의 데이터에 대한 디지털 서명을 생성합니다.Generates a digital signature for the specified length of data, beginning at the specified offset.

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

지정된 해시 알고리즘을 사용하여 지정된 바이트 배열 일부의 해시 값을 계산하고 결과 해시 값을 서명합니다.Computes the hash value of a portion of the specified byte array using the specified hash algorithm and signs the resulting hash value.

(다음에서 상속됨 ECDsa)
SignData(Stream)

스트림 끝까지 읽어들여 지정된 데이터 스트림에 대한 서명을 생성합니다.Generates a signature for the specified data stream, reading to the end of the stream.

SignData(Stream, HashAlgorithmName)

지정된 해시 알고리즘을 사용하여 지정된 스트림의 해시 값을 계산하고 결과 해시 값을 서명합니다.Computes the hash value of the specified stream using the specified hash algorithm and signs the resulting hash value.

(다음에서 상속됨 ECDsa)
SignHash(Byte[])

지정된 해시 값의 서명을 생성합니다.Generates a signature for the specified hash value.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
ToXmlString(Boolean)

이 메서드가 구현되지 않은 경우This method is not implemented.

ToXmlString(ECKeyXmlFormat)

지정된 형식을 사용하여 키 정보를 XML 문자열로 serialize합니다.Serializes the key information to an XML string by using the specified format.

TryExportECPrivateKey(Span<Byte>, Int32)

ECPrivateKey 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.Attempts to export the current key in the ECPrivateKey format into a provided buffer.

(다음에서 상속됨 ECDsa)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a byte-based password.

(다음에서 상속됨 ECDsa)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a char-based password.

(다음에서 상속됨 ECDsa)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

PKCS#8 PrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into a provided buffer.

(다음에서 상속됨 ECDsa)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

X.509 SubjectPublicKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.Attempts to export the current key in the X.509 SubjectPublicKeyInfo format into a provided buffer.

(다음에서 상속됨 ECDsa)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) (다음에서 상속됨 ECDsa)
TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32) (다음에서 상속됨 ECDsa)
TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)
VerifyData(Byte[], Byte[])

지정된 데이터의 디지털 서명을 확인합니다.Verifies the digital signature of the specified data.

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

지정된 해시 알고리즘을 사용하여 지정된 데이터의 해시 값을 계산한 다음 이 값을 제공된 서명과 비교하여 디지털 서명이 유효한지 확인합니다.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.

(다음에서 상속됨 ECDsa)
VerifyData(Byte[], Int32, Int32, Byte[])

지정된 오프셋에서 시작하여 지정된 길이의 데이터에 대한 서명을 확인합니다.Verifies a signature for the specified length of data, beginning at the specified offset.

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

지정된 해시 알고리즘을 사용하여 바이트 배열 일부에 있는 데이터의 해시 값을 계산한 다음 이 값을 제공된 서명과 비교하여 디지털 서명이 유효한지 확인합니다.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.

(다음에서 상속됨 ECDsa)
VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName) (다음에서 상속됨 ECDsa)
VerifyData(Stream, Byte[])

스트림 끝까지 읽어들여 지정된 데이터 스트림의 디지털 서명을 확인합니다.Verifies the digital signature of the specified data stream, reading to the end of the stream.

VerifyData(Stream, Byte[], HashAlgorithmName)

지정된 해시 알고리즘을 사용하여 지정된 스트림의 해시 값을 계산한 다음 이 값을 제공된 서명과 비교하여 디지털 서명이 유효한지 확인합니다.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.

(다음에서 상속됨 ECDsa)
VerifyHash(Byte[], Byte[])

지정된 해시 값에 대해 지정된 디지털 서명을 확인합니다.Verifies the specified digital signature against a specified hash value.

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

명시적 인터페이스 구현

IDisposable.Dispose()

이 멤버에 대한 설명은 Dispose()를 참조하십시오.For a description of this member, see Dispose().

(다음에서 상속됨 AsymmetricAlgorithm)

적용 대상