다음을 통해 공유


ECDiffieHellmanCng 클래스

정의

ECDH(Elliptic Curve Diffie-Hellman) 알고리즘의 CNG(Cryptography Next Generation) 구현을 제공합니다. 이 클래스는 암호화 작업을 수행하는 데 사용됩니다.

public ref class ECDiffieHellmanCng sealed : System::Security::Cryptography::ECDiffieHellman
public sealed class ECDiffieHellmanCng : System.Security.Cryptography.ECDiffieHellman
type ECDiffieHellmanCng = class
    inherit ECDiffieHellman
Public NotInheritable Class ECDiffieHellmanCng
Inherits ECDiffieHellman
상속
상속

예제

다음 예제에서는 클래스를 사용하여 ECDiffieHellmanCng 키 교환을 설정하는 방법과 해당 키를 사용하여 공용 채널을 통해 보내고 수신자가 암호를 해독할 수 있는 메시지를 암호화하는 방법을 보여 줍니다.

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

class Alice
{
    public static byte[] alicePublicKey;

    public static void Main(string[] args)
    {
        using (ECDiffieHellmanCng alice = new ECDiffieHellmanCng())
        {

            alice.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash;
            alice.HashAlgorithm = CngAlgorithm.Sha256;
            alicePublicKey = alice.PublicKey.ToByteArray();
            Bob bob = new Bob();
            CngKey bobKey = CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob);
            byte[] aliceKey = alice.DeriveKeyMaterial(bobKey);
            byte[] encryptedMessage = null;
            byte[] iv = null;
            Send(aliceKey, "Secret message", out encryptedMessage, out iv);
            bob.Receive(encryptedMessage, iv);
        }
    }

    private static void Send(byte[] key, string secretMessage, out byte[] encryptedMessage, out byte[] iv)
    {
        using (Aes aes = new AesCryptoServiceProvider())
        {
            aes.Key = key;
            iv = aes.IV;

            // Encrypt the message
            using (MemoryStream ciphertext = new MemoryStream())
            using (CryptoStream cs = new CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write))
            {
                byte[] plaintextMessage = Encoding.UTF8.GetBytes(secretMessage);
                cs.Write(plaintextMessage, 0, plaintextMessage.Length);
                cs.Close();
                encryptedMessage = ciphertext.ToArray();
            }
        }
    }
}
public class Bob
{
    public byte[] bobPublicKey;
    private byte[] bobKey;
    public Bob()
    {
        using (ECDiffieHellmanCng bob = new ECDiffieHellmanCng())
        {

            bob.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash;
            bob.HashAlgorithm = CngAlgorithm.Sha256;
            bobPublicKey = bob.PublicKey.ToByteArray();
            bobKey = bob.DeriveKeyMaterial(CngKey.Import(Alice.alicePublicKey, CngKeyBlobFormat.EccPublicBlob));
        }
    }

    public void Receive(byte[] encryptedMessage, byte[] iv)
    {

        using (Aes aes = new AesCryptoServiceProvider())
        {
            aes.Key = bobKey;
            aes.IV = iv;
            // Decrypt the message
            using (MemoryStream plaintext = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(encryptedMessage, 0, encryptedMessage.Length);
                    cs.Close();
                    string message = Encoding.UTF8.GetString(plaintext.ToArray());
                    Console.WriteLine(message);
                }
            }
        }
    }
}
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text




Class Alice
    Public Shared alicePublicKey() As Byte


    Public Shared Sub Main(ByVal args() As String)
        Using alice As New ECDiffieHellmanCng()
            alice.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash
            alice.HashAlgorithm = CngAlgorithm.Sha256
            alicePublicKey = alice.PublicKey.ToByteArray()
            Dim bob As New Bob()
            Dim k As CngKey = CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob)
            Dim aliceKey As Byte() = alice.DeriveKeyMaterial(CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob))
            Dim encryptedMessage As Byte() = Nothing
            Dim iv As Byte() = Nothing
            Send(aliceKey, "Secret message", encryptedMessage, iv)
            bob.Receive(encryptedMessage, iv)
        End Using
    End Sub


    Private Shared Sub Send(ByVal key() As Byte, ByVal secretMessage As String, ByRef encryptedMessage() As Byte, ByRef iv() As Byte)
        Using aes As New AesCryptoServiceProvider()
            aes.Key = key
            iv = aes.IV

            ' Encrypt the message
            Using ciphertext As New MemoryStream()
                Using cs As New CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write)
                    Dim plaintextMessage As Byte() = Encoding.UTF8.GetBytes(secretMessage)
                    cs.Write(plaintextMessage, 0, plaintextMessage.Length)
                    cs.Close()
                    encryptedMessage = ciphertext.ToArray()
                End Using
            End Using
        End Using

    End Sub
End Class

Public Class Bob
    Public bobPublicKey() As Byte
    Private bobKey() As Byte

    Public Sub New()
        Using bob As New ECDiffieHellmanCng()

            bob.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash
            bob.HashAlgorithm = CngAlgorithm.Sha256
            bobPublicKey = bob.PublicKey.ToByteArray()
            bobKey = bob.DeriveKeyMaterial(CngKey.Import(Alice.alicePublicKey, CngKeyBlobFormat.EccPublicBlob))
        End Using

    End Sub


    Public Sub Receive(ByVal encryptedMessage() As Byte, ByVal iv() As Byte)

        Using aes As New AesCryptoServiceProvider()
                aes.Key = bobKey
                aes.IV = iv
                ' Decrypt the message
            Using plaintext As New MemoryStream()
                Using cs As New CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write)
                    cs.Write(encryptedMessage, 0, encryptedMessage.Length)
                    cs.Close()
                    Dim message As String = Encoding.UTF8.GetString(plaintext.ToArray())
                    Console.WriteLine(message)
                End Using
            End Using
        End Using
    End Sub
End Class

설명

클래스 ECDiffieHellmanCng 를 사용하면 두 당사자가 공개 채널을 통해 통신하는 경우에도 프라이빗 키 자료를 교환할 수 있습니다. 양 당사자는 관리되는 Diffie-Hellman 클래스에서 비밀 계약 이라고 하는 동일한 비밀 값을 계산할 수 있습니다. 그런 다음 비밀 계약을 대칭 키로 포함하여 다양한 용도로 사용할 수 있습니다. 그러나 비밀 계약을 직접 노출하는 대신 클래스는 ECDiffieHellmanCng 값을 제공하기 전에 규약에 대한 일부 사후 처리를 수행합니다. 이 사후 처리를 KDF(키 파생 함수)라고 합니다. 사용할 KDF를 선택하고 Diffie-Hellman 개체의 인스턴스에 있는 속성 집합을 통해 해당 매개 변수를 설정할 수 있습니다.

키 파생 함수 속성
Hash HashAlgorithm - 비밀 계약을 처리하는 데 사용되는 해시 알고리즘입니다.

SecretPrepend - 해시하기 전에 비밀 규약 앞에 추가할 선택적 바이트 배열입니다.

SecretAppend - 해시하기 전에 비밀 계약에 추가할 선택적 바이트 배열입니다.
Hmac HashAlgorithm - 비밀 계약을 처리하는 데 사용되는 해시 알고리즘입니다.

SecretPrepend- 해시하기 전에 비밀 규약 앞에 추가할 선택적 바이트 배열입니다.

SecretAppend - 해시하기 전에 비밀 계약에 추가할 선택적 바이트 배열입니다.
Tls Label - 키 파생에 대한 레이블입니다.

Seed - 키 파생의 시드입니다.

키 파생 함수를 통해 비밀 계약을 전달 하는 결과는 애플리케이션에 대 한 키 자료로 사용할 수 있는 바이트 배열입니다. 생성된 키 재질의 바이트 수는 키 파생 함수에 따라 달라집니다. 예를 들어 SHA-256은 256비트 키 재질을 생성하는 반면 SHA-512는 512비트 키 재질을 생성합니다. ECDH 키 교환의 기본 흐름은 다음과 같습니다.

  1. Alice와 Bob은 Diffie-Hellman 키 교환 작업에 사용할 키 쌍을 만듭니다.

  2. Alice와 Bob은 동의한 매개 변수를 사용하여 KDF를 구성합니다.

  3. Alice는 Bob에게 공개 키를 보냅니다.

  4. Bob은 Alice에게 공개 키를 보냅니다.

  5. Alice와 Bob은 서로의 공개 키를 사용하여 비밀 계약을 생성하고 KDF를 비밀 계약에 적용하여 키 자료를 생성합니다.

생성자

ECDiffieHellmanCng()

임의의 키 쌍을 사용하여 ECDiffieHellmanCng 클래스의 새 인스턴스를 초기화합니다.

ECDiffieHellmanCng(CngKey)

지정된 CngKey 개체를 사용하여 ECDiffieHellmanCng 클래스의 새 인스턴스를 초기화합니다.

ECDiffieHellmanCng(ECCurve)

해당 퍼블릭/프라이빗 키 쌍이 지정된 곡선에서 생성되는 ECDiffieHellmanCng 클래스의 새 인스턴스를 만듭니다.

ECDiffieHellmanCng(Int32)

지정된 키 크기를 사용하여 임의의 키 쌍으로 ECDiffieHellmanCng 클래스의 새 인스턴스를 초기화합니다.

필드

KeySizeValue

비대칭 알고리즘에서 사용하는 키 모듈러스의 크기(비트 단위)를 나타냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
LegalKeySizesValue

비대칭 알고리즘에서 지원하는 키 크기를 지정합니다.

(다음에서 상속됨 AsymmetricAlgorithm)

속성

HashAlgorithm

키 자료를 생성하는 데 사용할 해시 알고리즘을 가져오거나 설정합니다.

HmacKey

키 자료를 파생하는 데 사용할 HMAC(해시 기반 메시지 인증 코드) 키를 가져오거나 설정합니다.

Key

현재 개체에서 암호화 작업에 사용하는 CngKey를 지정합니다.

KeyDerivationFunction

ECDiffieHellmanCng 클래스의 키 파생 함수를 가져오거나 설정합니다.

KeyExchangeAlgorithm

키 교환 알고리즘의 이름을 가져옵니다.

(다음에서 상속됨 ECDiffieHellman)
KeySize

비대칭 알고리즘에서 사용하는 키 모듈러스의 크기(비트 단위)를 가져오거나 설정합니다.

KeySize

비대칭 알고리즘에서 사용하는 키 모듈러스의 크기(비트 단위)를 가져오거나 설정합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
Label

키 파생에 사용되는 레이블 값을 가져오거나 설정합니다.

LegalKeySizes

비대칭 알고리즘에서 지원하는 키 크기를 가져옵니다.

LegalKeySizes

비대칭 알고리즘에서 지원하는 키 크기를 가져옵니다.

(다음에서 상속됨 AsymmetricAlgorithm)
PublicKey

다른 ECDiffieHellmanCng 개체에서 공유 비밀 계약을 생성하는 데 사용할 수 있는 공개 키를 가져옵니다.

SecretAppend

키 자료를 생성할 때 비밀 계약에 추가되는 값을 가져오거나 설정합니다.

SecretPrepend

키 자료를 파생할 때 비밀 계약의 시작 부분에 추가될 값을 가져오거나 설정합니다.

Seed

키 자료를 파생할 때 사용될 시드 값을 가져오거나 설정합니다.

SignatureAlgorithm

서명 알고리즘의 이름을 가져옵니다.

(다음에서 상속됨 ECDiffieHellman)
UseSecretAgreementAsHmacKey

비밀 계약을 HMAC(해시 기반 메시지 인증 코드)로 사용하여 키 자료를 파생하는지 여부를 나타내는 값을 가져옵니다.

메서드

Clear()

AsymmetricAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

지정된 해시 알고리즘을 사용하여 키 파생을 수행합니다.

(다음에서 상속됨 ECDiffieHellman)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

앞에 추가되거나 뒤에 추가된 선택적 데이터와 함께 지정된 해시 알고리즘을 사용하여 키 파생을 수행합니다.

DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

파생 클래스에서 구현될 경우 앞에 추가되거나 뒤에 추가된 선택적 데이터와 함께 지정된 해시 알고리즘을 사용하여 키 파생을 수행합니다.

(다음에서 상속됨 ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[])

지정된 HMAC(해시 기반 메시지 인증 코드) 알고리즘을 사용하여 키 파생을 수행합니다.

(다음에서 상속됨 ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[])

앞에 추가되거나 뒤에 추가된 선택적 데이터와 함께 지정된 HMAC(해시 기반 메시지 인증 코드) 알고리즘을 사용하여 키 파생을 수행합니다.

DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[])

파생 클래스에서 추가될 경우 앞에 추가되거나 뒤에 추가된 선택적 데이터와 함께 지정된 HMAC(해시 기반 메시지 인증 코드) 알고리즘을 사용하여 키 파생을 수행합니다.

(다음에서 상속됨 ECDiffieHellman)
DeriveKeyMaterial(CngKey)

두 번째 당사자의 공개 키가 들어 있는 CngKey 개체를 사용하여 두 당사자 간의 비밀 계약을 통해 생성되는 키 자료를 파생합니다.

DeriveKeyMaterial(ECDiffieHellmanPublicKey)

두 번째 당사자의 공개 키가 들어 있는 ECDiffieHellmanPublicKey 개체를 사용하여 두 당사자 간의 비밀 계약을 통해 생성되는 키 자료를 파생합니다.

DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[])

TLS(전송 계층 보안) 1.1 PRF(의사 난수 함수)를 사용하여 키 파생을 수행합니다.

DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[])

파생 클래스에서 구현될 경우 TLS(전송 계층 보안) 1.1 PRF(의사 난수 함수)를 사용하여 키 파생을 수행합니다.

(다음에서 상속됨 ECDiffieHellman)
DeriveRawSecretAgreement(ECDiffieHellmanPublicKey)

원시 키 재질을 파생합니다.

(다음에서 상속됨 ECDiffieHellman)
DeriveSecretAgreementHandle(CngKey)

두 번째 당사자의 공개 키가 들어 있는 CngKey 개체를 사용하여 두 당사자 간에 생성된 비밀 계약에 대한 핸들을 가져옵니다.

DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey)

두 번째 당사자의 공개 키가 들어 있는 ECDiffieHellmanPublicKey 개체를 사용하여 두 당사자 간에 생성된 비밀 계약에 대한 핸들을 가져옵니다.

Dispose()

AsymmetricAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

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

AsymmetricAlgorithm 클래스에 사용되는 관리되지 않는 리소스를 해제하고, 필요에 따라 관리되는 리소스를 해제합니다.

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

지정된 개체가 현재 개체와 같은지 확인합니다.

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

ECPrivateKey 형식으로 현재 키를 내보냅니다.

(다음에서 상속됨 ECDiffieHellman)
ExportECPrivateKeyPem()

현재 키를 ECPrivateKey 형식인 PEM 인코딩으로 내보냅니다.

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

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.

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

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

PEM 인코딩된 바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식으로 현재 키를 내보냅니다.

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

PEM 인코딩된 문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식으로 현재 키를 내보냅니다.

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

ECCurve 개체에 사용되는 키 및 명시적 곡선 매개 변수를 ECParameters 개체로 내보냅니다.

ExportExplicitParameters(Boolean)

파생 클래스에서 재정의하는 경우 ImportParameters(ECParameters) 메서드로 전달할 수 있도록 명시적 곡선 형식을 사용하여 작동하는 ECDiffieHellman 키에서 ECParameters 구조체로 퍼블릭 키 정보 또는 퍼블릭 및 프라이빗 키 정보를 내보냅니다.

(다음에서 상속됨 ECDiffieHellman)
ExportParameters(Boolean)

ECCurve 개체가 사용하는 키를 ECParameters 개체로 내보냅니다.

ExportParameters(Boolean)

파생 클래스에서 재정의하는 경우 ImportParameters(ECParameters) 메서드로 전달할 수 있도록 작동하는 ECDiffieHellman 키에서 ECParameters 구조체로 퍼블릭 키 정보 또는 퍼블릭 및 프라이빗 키 정보를 내보냅니다.

(다음에서 상속됨 ECDiffieHellman)
ExportPkcs8PrivateKey()

PKCS#8 PrivateKeyInfo 형식으로 현재 키를 내보냅니다.

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

현재 키를 PKCS#8 PrivateKeyInfo 형식, PEM 인코딩 형식으로 내보냅니다.

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

X.509 SubjectPublicKeyInfo 형식으로 된 현재 키의 퍼블릭 키 부분을 내보냅니다.

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

현재 키의 공개 키 부분을 PEM 인코딩된 X.509 SubjectPublicKeyInfo 형식으로 내보냅니다.

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

이 메서드가 구현되지 않은 경우

FromXmlString(String)

이 메서드는 모든 경우에 throw됩니다.

(다음에서 상속됨 ECDiffieHellman)
FromXmlString(String, ECKeyXmlFormat)
사용되지 않음.

지정된 형식을 사용하여 XML 문자열에서 키 정보를 역직렬화합니다.

GenerateKey(ECCurve)

지정된 곡선에 대해 사용 후 삭제 퍼블릭/프라이빗 키 쌍을 새로 생성합니다.

GenerateKey(ECCurve)

파생 클래스에서 재정의하는 경우 지정된 곡선에 대해 사용 후 삭제 퍼블릭/프라이빗 키 쌍을 새로 생성합니다.

(다음에서 상속됨 ECDiffieHellman)
GetHashCode()

기본 해시 함수로 작동합니다.

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

현재 인스턴스의 Type을 가져옵니다.

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

ECPrivateKey 구조체에서 이 개체의 키를 대체하여 퍼블릭/프라이빗 키 쌍을 가져옵니다.

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

바이트 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조체에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

바이트 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조체에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

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

문자 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

문자 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

(다음에서 상속됨 ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

암호화된 RFC 7468 PEM으로 인코딩된 프라이빗 키를 가져와 이 개체의 키를 바꿉니다.

(다음에서 상속됨 ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

암호화된 RFC 7468 PEM으로 인코딩된 프라이빗 키를 가져와 이 개체의 키를 바꿉니다.

(다음에서 상속됨 ECDiffieHellman)
ImportFromPem(ReadOnlySpan<Char>)

RFC 7468 PEM으로 인코딩된 키를 가져와 이 개체의 키를 바꿉니다.

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

ECCurve 개체에 대해 지정된 매개 변수를 현재 인스턴스에 키로 가져옵니다.

ImportParameters(ECParameters)

파생 클래스에서 재정의하는 경우 ECCurve에 대해 지정된 매개 변수를 현재 ECDiffieHellman 개체에 사용 후 삭제 키로 가져옵니다.

(다음에서 상속됨 ECDiffieHellman)
ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

해독한 다음 이 개체의 키를 대체하여 PKCS#8 PrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

해독한 다음 이 개체의 키를 대체하여 PKCS#8 PrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

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

해독한 다음 이 개체의 키를 대체하여 X.509 SubjectPublicKeyInfo 구조에서 퍼블릭 키를 가져옵니다.

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

현재 Object의 단순 복사본을 만듭니다.

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

현재 개체를 나타내는 문자열을 반환합니다.

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

이 메서드가 구현되지 않은 경우

ToXmlString(Boolean)

이 메서드는 모든 경우에 throw됩니다.

(다음에서 상속됨 ECDiffieHellman)
ToXmlString(ECKeyXmlFormat)
사용되지 않음.

지정된 형식을 사용하여 키 정보를 XML 문자열로 serialize합니다.

TryExportECPrivateKey(Span<Byte>, Int32)

ECPrivateKey 형식의 현재 키를 제공된 버퍼로 내보내려고 합니다.

(다음에서 상속됨 ECDiffieHellman)
TryExportECPrivateKeyPem(Span<Char>, Int32)

PEM으로 인코딩된 ECPrivateKey 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

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

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

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

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

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

PEM 인코딩된 바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식으로 현재 키를 내보내려고 시도합니다.

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

PEM 인코딩된 문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식으로 현재 키를 내보냅니다.

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

PKCS#8 PrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

PKCS#8 PrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 ECDiffieHellman)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

PEM으로 인코딩된 PKCS#8 PrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

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

X.509 SubjectPublicKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 ECDiffieHellman)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

PEM으로 인코딩된 X.509 SubjectPublicKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)

명시적 인터페이스 구현

IDisposable.Dispose()

이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다.

이 멤버에 대한 설명은 Dispose()를 참조하세요.

(다음에서 상속됨 AsymmetricAlgorithm)

적용 대상