ECDiffieHellmanCng 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 키 교환의 기본 흐름은 다음과 같습니다.
Alice와 Bob은 Diffie-Hellman 키 교환 작업에 사용할 키 쌍을 만듭니다.
Alice와 Bob은 동의한 매개 변수를 사용하여 KDF를 구성합니다.
Alice는 Bob에게 공개 키를 보냅니다.
Bob은 Alice에게 공개 키를 보냅니다.
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) |
|
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) |
적용 대상
.NET