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 ECDiffieHellmanCng nowe wystąpienie 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, które są 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), który ma być używany podczas wyprowadzania materiału klucza.

Key

Określa CngKey , który jest używany przez bieżący obiekt dla 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 modulo klucza używanego przez algorytm asymetryczny.

KeySize

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

(Odziedziczone po AsymmetricAlgorithm)
Label

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

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 do generowania wspólnej umowy wpisu tajnego.

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ść inicjatora, 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 danymi wstępnie dodanymi lub dołączonymi.

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

Po zaimplementowaniu 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 (kod uwierzytelniania komunikatów oparty na skrótach).

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

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

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

Po zaimplementowaniu w klasie pochodnej, wykonuje wyprowadzanie kluczy przy użyciu określonego algorytmu HMAC (kod uwierzytelniania komunikatów oparty na skrótach) z opcjonalnymi wstępnie dodanymi lub dołączonymi danymi.

(Odziedziczone po ECDiffieHellman)
DeriveKeyMaterial(CngKey)

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

DeriveKeyMaterial(ECDiffieHellmanPublicKey)

Tworzy materiał kluczowy wygenerowany na podstawie umowy tajnej między dwiema stronami, biorąc pod uwagę ECDiffieHellmanPublicKey obiekt zawierający klucz publiczny drugiej strony.

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

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

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

Po zaimplementowaniu w klasie pochodnej wykonuje wyprowadzanie klucza przy użyciu protokołu TLS (Transport Layer Security) 1.1 PRF (pseudolosowa funkcja).

(Odziedziczone po ECDiffieHellman)
DeriveRawSecretAgreement(ECDiffieHellmanPublicKey)

Wyodrębnij materiał klucza pierwotnego.

(Odziedziczone po ECDiffieHellman)
DeriveSecretAgreementHandle(CngKey)

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

DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey)

Pobiera dojście do tajnej umowy 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 jako PEM.

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

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

ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym 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 za pomocą protokołu PEM.

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

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na znakach zakodowanym za pomocą protokołu 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 informacje publiczne lub publiczne i prywatne przy użyciu jawnej formy krzywej z klucza roboczego ECDiffieHellman do ECParameters struktury, aby można było przekazać je do ImportParameters(ECParameters) metody.

(Odziedziczone po ECDiffieHellman)
ExportParameters(Boolean)

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

ExportParameters(Boolean)

Po przesłonięciu w klasie pochodnej eksportuje informacje publiczne lub publiczne i prywatne 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, kodowany PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

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

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

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

(Odziedziczone po AsymmetricAlgorithm)
FromXmlString(String)

Ta metoda nie jest zaimplementowana.

FromXmlString(String)

Ta metoda jest zgłaszana we wszystkich przypadkach.

(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 zastąpieniu 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 wartość bieżącego wystąpienia.

(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 standardzie RFC 7468 Z kodowaniem PEM, zastępując klucze dla tego obiektu.

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

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

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

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

(Odziedziczone po ECDiffieHellman)
ImportParameters(ECParameters)

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

ImportParameters(ECParameters)

Po zastąpieniu w klasie pochodnej importuje określone parametry jako ECCurve klucz efemeryczny do bieżącego ECDiffieHellman obiektu.

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

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

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny/prywatny 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 jest zgłaszana we wszystkich przypadkach.

(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 dostarczonego buforu.

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

Próbuje wyeksportować bieżący klucz w formacie ECPrivateKey zakodowany w formacie PEM do dostarczonego 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 dostarczonego 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 dostarczonego 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 za pomocą klucza 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 znakach zakodowanym za pomocą protokołu 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 dostarczonego buforu.

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

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

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

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

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

Próbuje wyeksportować bieżący klucz w formacie X.509 SubjectPublicKeyInfo zakodowany w formacie PEM do dostarczonego 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 członka, zobacz Dispose().

(Odziedziczone po AsymmetricAlgorithm)

Dotyczy