Udostępnij za pośrednictwem


ECDiffieHellmanCng Klasa

Definicja

Zapewnia implementację algorytmu Elliptic Curve Diffie-Hellman (ECDH) kryptografii nowej generacji (CNG). Ta klasa służy do wykonywania operacji kryptograficznych.

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
Dziedziczenie
Dziedziczenie

Przykłady

W poniższym przykładzie pokazano, jak użyć ECDiffieHellmanCng klasy do ustanowienia wymiany kluczy i jak użyć tego klucza do szyfrowania komunikatu, który można wysłać za pośrednictwem kanału publicznego i odszyfrować przez odbiornik.

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

Uwagi

Klasa ECDiffieHellmanCng umożliwia dwóm stronom wymianę materiału klucza prywatnego, nawet jeśli komunikują się za pośrednictwem kanału publicznego. Obie strony mogą obliczyć tę samą wartość wpisu tajnego, która jest określana jako umowa wpisów tajnych w zarządzanych klasach Diffie-Hellman. Następnie można użyć umowy tajnej do różnych celów, w tym jako klucza symetrycznego. Jednak zamiast bezpośrednio ujawniać tajną umowę, ECDiffieHellmanCng klasa wykonuje pewne czynności po przetworzeniu umowy przed dostarczeniem wartości. To przetwarzanie końcowe jest określane jako funkcja wyprowadzania klucza (KDF); Możesz wybrać, którego KDF chcesz użyć i ustawić jego parametry za pomocą zestawu właściwości w wystąpieniu obiektu Diffie-Hellman.

Funkcja wyprowadzania kluczy Właściwości
Hash HashAlgorithm - Algorytm skrótu używany do przetwarzania umowy tajnej.

SecretPrepend - Opcjonalna tablica bajtów, która ma poprzedzać umowę wpisu tajnego przed utworzeniem skrótu.

SecretAppend - Opcjonalna tablica bajtów dołączana do umowy tajnej przed utworzeniem skrótu.
Hmac HashAlgorithm - Algorytm skrótu używany do przetwarzania umowy tajnej.

SecretPrepend- Opcjonalna tablica bajtów, która ma poprzedzać umowę wpisu tajnego przed utworzeniem skrótu.

SecretAppend - Opcjonalna tablica bajtów dołączana do umowy tajnej przed utworzeniem skrótu.
Tls Label - Etykieta wyprowadzania klucza.

Seed - Inicjator wyprowadzania klucza.

Wynikiem przekazania umowy tajnej za pośrednictwem funkcji wyprowadzania kluczy jest tablica bajtów, która może być używana jako materiał klucza dla aplikacji. Liczba bajtów wygenerowanego materiału klucza zależy od funkcji wyprowadzania klucza; Na przykład algorytm SHA-256 wygeneruje 256 bitów materiału klucza, a algorytm SHA-512 wygeneruje 512 bitów materiału klucza. Podstawowy przepływ wymiany kluczy ECDH jest następujący:

  1. Alice i Bob tworzą parę kluczy do użycia na potrzeby operacji wymiany kluczy Diffie-Hellman

  2. Alicja i Bob konfigurują usługę KDF przy użyciu parametrów, na których się zgadzasz.

  3. Alice wysyła Bobowi swój klucz publiczny.

  4. Bob wysyła Alice swój klucz publiczny.

  5. Alice i Bob używają kluczy publicznych do wygenerowania tajnej umowy i zastosowania usługi KDF do tajnej umowy w celu wygenerowania materiału klucza.

Konstruktory

ECDiffieHellmanCng()

Inicjuje ECDiffieHellmanCng nowe wystąpienie klasy z losową parą kluczy.

ECDiffieHellmanCng(CngKey)

Inicjuje ECDiffieHellmanCng nowe wystąpienie klasy przy użyciu określonego CngKey obiektu.

ECDiffieHellmanCng(ECCurve)

Tworzy nowe wystąpienie ECDiffieHellmanCng klasy, której para kluczy publicznych/prywatnych jest generowana na określonej krzywej.

ECDiffieHellmanCng(Int32)

Inicjuje nowe wystąpienie ECDiffieHellmanCng klasy z losową parą kluczy przy użyciu określonego rozmiaru klucza.

Pola

KeySizeValue

Reprezentuje rozmiar w bitach modułu klucza używanego przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)
LegalKeySizesValue

Określa rozmiary kluczy obsługiwane przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)

Właściwości

HashAlgorithm

Pobiera lub ustawia algorytm wyznaczania wartości skrótu do użycia podczas generowania materiału klucza.

HmacKey

Pobiera lub ustawia klucz uwierzytelniania komunikatów oparty na skrótach (HMAC) do użycia podczas wyprowadzania materiału klucza.

Key

Określa CngKey , który jest używany przez bieżący obiekt na potrzeby operacji kryptograficznych.

KeyDerivationFunction

Pobiera lub ustawia funkcję wyprowadzania klucza dla ECDiffieHellmanCng klasy.

KeyExchangeAlgorithm

Pobiera nazwę algorytmu wymiany kluczy.

(Odziedziczone po ECDiffieHellman)
KeySize

Pobiera lub ustawia rozmiar w bitach modułu klucza używanego przez algorytm asymetryczny.

KeySize

Pobiera lub ustawia rozmiar w bitach modułu klucza używanego przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)
Label

Pobiera lub ustawia wartość etykiety, która jest używana do wyprowadzania klucza.

LegalKeySizes

Pobiera rozmiary kluczy obsługiwane przez algorytm asymetryczny.

LegalKeySizes

Pobiera rozmiary kluczy obsługiwane przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)
PublicKey

Pobiera klucz publiczny, który może być używany przez inny ECDiffieHellmanCng obiekt w celu wygenerowania wspólnej umowy wpisów tajnych.

SecretAppend

Pobiera lub ustawia wartość, która zostanie dołączona do umowy tajnej podczas generowania materiału klucza.

SecretPrepend

Pobiera lub ustawia wartość, która zostanie dodana na początku umowy tajnej podczas wyprowadzania materiału klucza.

Seed

Pobiera lub ustawia wartość nasion, która będzie używana podczas wyprowadzania materiału klucza.

SignatureAlgorithm

Pobiera nazwę algorytmu podpisu.

(Odziedziczone po ECDiffieHellman)
UseSecretAgreementAsHmacKey

Pobiera wartość wskazującą, czy umowa wpisów tajnych jest używana jako klucz kodu uwierzytelniania komunikatów oparty na skrótach (HMAC) w celu uzyskania materiału klucza.

Metody

Clear()

Zwalnia wszystkie zasoby używane przez klasę AsymmetricAlgorithm .

(Odziedziczone po AsymmetricAlgorithm)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

Wykonuje wyprowadzanie klucza przy użyciu określonego algorytmu wyznaczania wartości skrótu.

(Odziedziczone po ECDiffieHellman)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

Wykonuje wyprowadzanie klucza przy użyciu określonego algorytmu wyznaczania wartości skrótu z opcjonalnymi wstępnie utworzonymi lub dołączonymi danymi.

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

W przypadku implementacji w klasie pochodnej wykonuje wyprowadzanie klucza przy użyciu określonego algorytmu wyznaczania wartości skrótu z opcjonalnymi danymi wstępnie dodanymi lub dołączonymi.

(Odziedziczone po ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[])

Wykonuje wyprowadzanie klucza przy użyciu określonego algorytmu HMAC (opartego na skrótach kodu uwierzytelniania komunikatów).

(Odziedziczone po ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[])

Wykonuje wyprowadzanie klucza przy użyciu określonego algorytmu HMAC (opartego na skrótach kodu uwierzytelniania komunikatów) z opcjonalnymi danymi wstępnie dodanymi lub dołączonymi.

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

W przypadku implementacji w klasie pochodnej wykonuje wyprowadzanie klucza przy użyciu określonego algorytmu HMAC (kod uwierzytelniania komunikatów opartych na skrótach) z opcjonalnymi prepended lub dołączonymi danymi.

(Odziedziczone po ECDiffieHellman)
DeriveKeyMaterial(CngKey)

Tworzy kluczowy materiał generowany na podstawie umowy tajnej między dwiema stronami, biorąc pod uwagę CngKey obiekt, który zawiera klucz publiczny drugiej strony.

DeriveKeyMaterial(ECDiffieHellmanPublicKey)

Tworzy materiał klucza generowany na podstawie umowy tajnej między dwiema stronami, biorąc pod uwagę ECDiffieHellmanPublicKey obiekt, który zawiera klucz publiczny drugiej strony.

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

Wykonuje wyprowadzanie klucza przy użyciu protokołu TLS (Transport Layer Security) 1.1 PRF (pseudo-losowa funkcja).

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

W przypadku implementacji w klasie pochodnej wykonuje wyprowadzanie klucza przy użyciu protokołu TLS (Transport Layer Security) 1.1 PRF (pseudo-losowa funkcja).

(Odziedziczone po ECDiffieHellman)
DeriveRawSecretAgreement(ECDiffieHellmanPublicKey)

Uzyskiwanie materiału klucza pierwotnego.

(Odziedziczone po ECDiffieHellman)
DeriveSecretAgreementHandle(CngKey)

Pobiera dojście do umowy tajnej wygenerowanej między dwiema stronami, biorąc pod uwagę CngKey obiekt zawierający klucz publiczny drugiej strony.

DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey)

Pobiera dojście do umowy tajnej wygenerowanej między dwiema stronami, biorąc pod uwagę ECDiffieHellmanPublicKey obiekt zawierający klucz publiczny drugiej strony.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy AsymmetricAlgorithm.

(Odziedziczone po AsymmetricAlgorithm)
Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez klasę AsymmetricAlgorithm i opcjonalnie zwalnia zarządzane zasoby.

(Odziedziczone po AsymmetricAlgorithm)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
ExportECPrivateKey()

Eksportuje bieżący klucz w formacie ECPrivateKey.

(Odziedziczone po ECDiffieHellman)
ExportECPrivateKeyPem()

Eksportuje bieżący klucz w formacie ECPrivateKey, zakodowany PEM.

(Odziedziczone po ECAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo przy użyciu hasła opartego na bajtach.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo przy użyciu hasła opartego na bajtach.

(Odziedziczone po AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na znakach.

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na znakach.

(Odziedziczone po AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na bajtach, zakodowanym PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na char, zakodowanym PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportExplicitParameters(Boolean)

Eksportuje klucz i jawne parametry krzywej używane przez ECCurve obiekt do ECParameters obiektu.

ExportExplicitParameters(Boolean)

Po zastąpieniu w klasie pochodnej eksportuje publiczne lub publiczne i prywatne informacje o kluczu przy użyciu jawnego formularza krzywej z klucza roboczego ECDiffieHellman do ECParameters struktury, aby można je było przekazać do ImportParameters(ECParameters) metody.

(Odziedziczone po ECDiffieHellman)
ExportParameters(Boolean)

Eksportuje klucz używany przez ECCurve obiekt do ECParameters obiektu.

ExportParameters(Boolean)

Po zastąpieniu w klasie pochodnej eksportuje publiczne lub publiczne i prywatne informacje o kluczu z klucza roboczego ECDiffieHellman do ECParameters struktury, aby można je było przekazać do ImportParameters(ECParameters) metody.

(Odziedziczone po ECDiffieHellman)
ExportPkcs8PrivateKey()

Eksportuje bieżący klucz w formacie PKCS#8 PrivateKeyInfo.

(Odziedziczone po AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

Eksportuje bieżący klucz w formacie PKCS#8 PrivateKeyInfo, zakodowanym PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Eksportuje część klucza publicznego bieżącego klucza w formacie X.509 SubjectPublicKeyInfo.

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

Eksportuje część klucza publicznego bieżącego klucza w formacie X.509 SubjectPublicKeyInfo, zakodowanym PEM.

(Odziedziczone po AsymmetricAlgorithm)
FromXmlString(String)

Ta metoda nie jest zaimplementowana.

FromXmlString(String)

Ta metoda zgłasza wszystkie przypadki.

(Odziedziczone po ECDiffieHellman)
FromXmlString(String, ECKeyXmlFormat)
Przestarzałe.

Deserializuje informacje o kluczu z ciągu XML przy użyciu określonego formatu.

GenerateKey(ECCurve)

Generuje nową efemeralną parę kluczy publicznych/prywatnych dla określonej krzywej.

GenerateKey(ECCurve)

Po przesłonięciu w klasie pochodnej generuje nową efemeralną parę kluczy publicznych/prywatnych dla określonej krzywej.

(Odziedziczone po ECDiffieHellman)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
ImportECPrivateKey(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny/prywatny z struktury ECPrivateKey, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

Importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na bajtach, zastępując klucze dla tego obiektu.

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

Importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na bajtach, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na znakach, zastępując klucze dla tego obiektu.

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

Importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na znakach, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

Importuje zaszyfrowany klucz prywatny zakodowany w formacie PEM RFC 7468, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Importuje zaszyfrowany klucz prywatny zakodowany w formacie PEM RFC 7468, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
ImportFromPem(ReadOnlySpan<Char>)

Importuje klucz zakodowany w formacie PEM RFC 7468, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
ImportParameters(ECParameters)

Importuje określone parametry obiektu ECCurve jako klucza do bieżącego wystąpienia.

ImportParameters(ECParameters)

Po przesłonięciu w klasie pochodnej zaimportuje określone parametry jako ECCurve klucz efemeryczny do bieżącego ECDiffieHellman obiektu.

(Odziedziczone po ECDiffieHellman)
ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny/prywatnypair z struktury PKCS#8 PrivateKeyInfo po odszyfrowaniu, zastępując klucze dla tego obiektu.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny/prywatnypair z struktury PKCS#8 PrivateKeyInfo po odszyfrowaniu, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny ze struktury SubjectPublicKeyInfo X.509 po odszyfrowaniu, zastępując klucze dla tego obiektu.

(Odziedziczone po ECDiffieHellman)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
ToXmlString(Boolean)

Ta metoda nie jest zaimplementowana.

ToXmlString(Boolean)

Ta metoda zgłasza wszystkie przypadki.

(Odziedziczone po ECDiffieHellman)
ToXmlString(ECKeyXmlFormat)
Przestarzałe.

Serializuje informacje o kluczu do ciągu XML przy użyciu określonego formatu.

TryExportECPrivateKey(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w ECPrivateKey formacie do udostępnionego buforu.

(Odziedziczone po ECDiffieHellman)
TryExportECPrivateKeyPem(Span<Char>, Int32)

Próbuje wyeksportować bieżący klucz w formacie ECPrivateKey zakodowany w PEM do udostępnionego buforu.

(Odziedziczone po ECAlgorithm)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do dostarczonego buforu przy użyciu hasła opartego na bajtach.

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

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do udostępnionego buforu przy użyciu hasła opartego na bajtach.

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

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do dostarczonego buforu przy użyciu hasła opartego na znakach.

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

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do udostępnionego buforu przy użyciu hasła opartego na znakach.

(Odziedziczone po ECDiffieHellman)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na bajtach, zakodowanym PEM.

(Odziedziczone po AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na char, zakodowanym PEM.

(Odziedziczone po AsymmetricAlgorithm)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo do dostarczonego buforu.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo do udostępnionego buforu.

(Odziedziczone po ECDiffieHellman)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo zakodowanym w PEM do udostępnionego buforu.

(Odziedziczone po AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie SubjectPublicKeyInfo X.509 do udostępnionego buforu.

(Odziedziczone po ECDiffieHellman)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

Próbuje wyeksportować bieżący klucz w formacie X.509 SubjectPublicKeyInfo zakodowanym w PEM do udostępnionego buforu.

(Odziedziczone po AsymmetricAlgorithm)

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Aby uzyskać opis tego elementu członkowskiego, zobacz Dispose().

(Odziedziczone po AsymmetricAlgorithm)

Dotyczy