ECDiffieHellmanCng Класс

Определение

Provides a Cryptography Next Generation (CNG) implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm.Provides a Cryptography Next Generation (CNG) implementation of the Elliptic Curve Diffie-Hellman (ECDH) algorithm. This class is used to perform cryptographic operations.This class is used to perform cryptographic operations.

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 для установки обмена ключами и использования этого ключа для шифрования сообщения, которое может быть отправлено через открытый канал и расшифровано получателем.The following example shows how to use the ECDiffieHellmanCng class to establish a key exchange and how to use that key to encrypt a message that can be sent over a public channel and decrypted by the receiver.

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 k = CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob);
            byte[] aliceKey = alice.DeriveKeyMaterial(CngKey.Import(bob.bobPublicKey, CngKeyBlobFormat.EccPublicBlob));
            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 позволяет двум сторонам обмениваться материалами закрытого ключа, даже если они обмениваются данными через открытый канал.The ECDiffieHellmanCng class enables two parties to exchange private key material even if they are communicating through a public channel. Обе стороны могут вычислить одно и то же значение секрета, которое называется секретным соглашением в управляемых классах Диффи-Хелмана.Both parties can calculate the same secret value, which is referred to as the secret agreement in the managed Diffie-Hellman classes. Секретное соглашение затем можно использовать для различных целей, включая в качестве симметричного ключа.The secret agreement can then be used for a variety of purposes, including as a symmetric key. Однако вместо того, чтобы предоставлять секретное соглашение напрямую, ECDiffieHellmanCng класс выполняет некоторую пошаговую обработку соглашения перед предоставлением значения.However, instead of exposing the secret agreement directly, the ECDiffieHellmanCng class does some post-processing on the agreement before providing the value. Эта пост-обработка называется функцией формирования ключа (подпрограмм). можно выбрать, какой ПОДПРОГРАММ вы хотите использовать, и задать его параметры с помощью набора свойств в экземпляре объекта Диффи-Хелмана.This post processing is referred to as the key derivation function (KDF); you can select which KDF you want to use and set its parameters through a set of properties on the instance of the Diffie-Hellman object.

Функция формирования ключаKey derivation function СвойстваProperties
Hash HashAlgorithm — хэш-алгоритм, используемый для обработки секретного соглашения.HashAlgorithm - The hash algorithm that is used to process the secret agreement.

SecretPrepend — дополнительный массив байтов для добавления в начало секретного соглашения перед его хэшированием.SecretPrepend - An optional byte array to prepend to the secret agreement before hashing it.

SecretAppend — необязательный массив байтов для добавления к секретному соглашению перед его хэшированием.SecretAppend - An optional byte array to append to the secret agreement before hashing it.
Hmac HashAlgorithm — хэш-алгоритм, используемый для обработки секретного соглашения.HashAlgorithm - The hash algorithm that is used to process the secret agreement.

SecretPrepend— дополнительный массив байтов для добавления в начало секретного соглашения перед его хэшированием.SecretPrepend- An optional byte array to prepend to the secret agreement before hashing it.

SecretAppend — необязательный массив байтов для добавления к секретному соглашению перед его хэшированием.SecretAppend - An optional byte array to append to the secret agreement before hashing it.
Tls Label — метка для формирования ключа.Label - The label for key derivation.

Seed — начальное значение для формирования ключа.Seed - The seed for key derivation.

Результатом передачи секретного соглашения через функцию формирования ключа является массив байтов, который может использоваться в качестве ключевого материала для вашего приложения.The result of passing the secret agreement through the key derivation function is a byte array that may be used as key material for your application. Число байтов создаваемого ключевого материала зависит от функции формирования ключа. Например, SHA-256 будет создавать 256 бит материала ключа, тогда как SHA-512 создаст 512 бита материала ключа.The number of bytes of key material generated is dependent on the key derivation function; for example, SHA-256 will generate 256 bits of key material, whereas SHA-512 will generate 512 bits of key material. Основной поток обмена ключами ECDH выглядит следующим образом:The basic flow of an ECDH key exchange is as follows:

  1. Алиса и Боб создают пару ключей, которая будет использоваться для операции обмена ключами Диффи-Хелмана.Alice and Bob create a key pair to use for the Diffie-Hellman key exchange operation

  2. Алиса и Боб настраивают ПОДПРОГРАММ, используя параметры, которые согласны с ними.Alice and Bob configure the KDF using parameters the agree on.

  3. Алиса отправляет Бобу свой открытый ключ.Alice sends Bob her public key.

  4. Боб отправляет Бобу свой открытый ключ.Bob sends Alice his public key.

  5. Алиса и Боб используют открытые ключи друг друга для создания секретного соглашения и применяют ПОДПРОГРАММ к секретному соглашению для создания материала ключа.Alice and Bob use each other's public keys to generate the secret agreement, and apply the KDF to the secret agreement to generate key material.

Конструкторы

ECDiffieHellmanCng()

Initializes a new instance of the ECDiffieHellmanCng class with a random key pair.Initializes a new instance of the ECDiffieHellmanCng class with a random key pair.

ECDiffieHellmanCng(CngKey)

Initializes a new instance of the ECDiffieHellmanCng class by using the specified CngKey object.Initializes a new instance of the ECDiffieHellmanCng class by using the specified CngKey object.

ECDiffieHellmanCng(ECCurve)

Creates a new instance of the ECDiffieHellmanCng class whose public/private key pair is generated over the specified curve.Creates a new instance of the ECDiffieHellmanCng class whose public/private key pair is generated over the specified curve.

ECDiffieHellmanCng(Int32)

Initializes a new instance of the ECDiffieHellmanCng class with a random key pair, using the specified key size.Initializes a new instance of the ECDiffieHellmanCng 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 generating key material.Gets or sets the hash algorithm to use when generating key material.

HmacKey

Gets or sets the Hash-based Message Authentication Code (HMAC) key to use when deriving key material.Gets or sets the Hash-based Message Authentication Code (HMAC) key to use when deriving key material.

Key

Specifies the CngKey that is used by the current object for cryptographic operations.Specifies the CngKey that is used by the current object for cryptographic operations.

KeyDerivationFunction

Gets or sets the key derivation function for the ECDiffieHellmanCng class.Gets or sets the key derivation function for the ECDiffieHellmanCng class.

KeyExchangeAlgorithm

Получает имя алгоритма обмена ключами.Gets the name of the key exchange algorithm.

(Унаследовано от ECDiffieHellman)
KeySize

Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

KeySize

Получает или задает размер модуля ключа (в битах), используемого алгоритмом асимметричного шифрования.Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

(Унаследовано от AsymmetricAlgorithm)
Label

Gets or sets the label value that is used for key derivation.Gets or sets the label value that is used for key derivation.

LegalKeySizes

Возвращает размеры ключа, которые поддерживаются алгоритмом асимметричного шифрования.Gets the key sizes that are supported by the asymmetric algorithm.

(Унаследовано от AsymmetricAlgorithm)
PublicKey

Gets the public key that can be used by another ECDiffieHellmanCng object to generate a shared secret agreement.Gets the public key that can be used by another ECDiffieHellmanCng object to generate a shared secret agreement.

SecretAppend

Gets or sets a value that will be appended to the secret agreement when generating key material.Gets or sets a value that will be appended to the secret agreement when generating key material.

SecretPrepend

Gets or sets a value that will be added to the beginning of the secret agreement when deriving key material.Gets or sets a value that will be added to the beginning of the secret agreement when deriving key material.

Seed

Gets or sets the seed value that will be used when deriving key material.Gets or sets the seed value that will be used when deriving key material.

SignatureAlgorithm

Получает имя алгоритма подписи.Gets the name of the signature algorithm.

(Унаследовано от ECDiffieHellman)
UseSecretAgreementAsHmacKey

Gets a value that indicates whether the secret agreement is used as a Hash-based Message Authentication Code (HMAC) key to derive key material.Gets a value that indicates whether the secret agreement is used as a Hash-based Message Authentication Code (HMAC) key to derive key material.

Методы

Clear()

Освобождает все ресурсы, используемые классом AsymmetricAlgorithm.Releases all resources used by the AsymmetricAlgorithm class.

(Унаследовано от AsymmetricAlgorithm)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

Выполняет формирование ключа с использованием указанного хэш-алгоритма.Performs key derivation using a specified hash algorithm.

(Унаследовано от ECDiffieHellman)
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

Performs key derivation using a specified hash algorithm with optional prepended or appended data.Performs key derivation using a specified hash algorithm with optional prepended or appended data.

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

При реализации в производном классе выполняет формирование ключа с использованием указанного хэш-алгоритма с дополнительными данными, добавленными в начале или конце.When implemented in a derived class, performs key derivation using a specified hash algorithm with optional prepended or appended data.

(Унаследовано от ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[])

Выполняет формирование ключа с использованием указанного алгоритма HMAC.Performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm.

(Унаследовано от ECDiffieHellman)
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[])

Performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm with optional prepended or appended data.Performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm with optional prepended or appended data.

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

При реализации в производном классе выполняет формирование ключа с использованием указанного алгоритма HMAC с дополнительными данными, добавленными в начале или конце.When implemented in a derived class, performs key derivation using a specified HMAC (Hash-based Message Authentication Code) algorithm with optional prepended or appended data.

(Унаследовано от ECDiffieHellman)
DeriveKeyMaterial(CngKey)

Derives the key material that is generated from the secret agreement between two parties, given a CngKey object that contains the second party's public key.Derives the key material that is generated from the secret agreement between two parties, given a CngKey object that contains the second party's public key.

DeriveKeyMaterial(ECDiffieHellmanPublicKey)

Derives the key material that is generated from the secret agreement between two parties, given an ECDiffieHellmanPublicKey object that contains the second party's public key.Derives the key material that is generated from the secret agreement between two parties, given an ECDiffieHellmanPublicKey object that contains the second party's public key.

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

Performs key derivation using the TLS (Transport Layer Security) 1.1 PRF (Pseudo-Random Function).Performs key derivation using the TLS (Transport Layer Security) 1.1 PRF (Pseudo-Random Function).

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

При реализации в производном классе выполняет формирование ключа с использованием псевдослучайной функции (PRF) протокола TLS 1.1.When implemented in a derived class, performs key derivation using the TLS (Transport Layer Security) 1.1 PRF (Pseudo-Random Function).

(Унаследовано от ECDiffieHellman)
DeriveSecretAgreementHandle(CngKey)

Gets a handle to the secret agreement generated between two parties, given a CngKey object that contains the second party's public key.Gets a handle to the secret agreement generated between two parties, given a CngKey object that contains the second party's public key.

DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey)

Gets a handle to the secret agreement generated between two parties, given an ECDiffieHellmanPublicKey object that contains the second party's public key.Gets a handle to the secret agreement generated between two parties, given an ECDiffieHellmanPublicKey object that contains the second party's public key.

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.

(Унаследовано от ECDiffieHellman)
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)

Exports the key and explicit curve parameters used by the ECCurve object into an ECParameters object.Exports the key and explicit curve parameters used by the ECCurve object into an ECParameters object.

ExportExplicitParameters(Boolean)

При переопределении в производном классе экспортирует сведения об открытом или открытом и закрытом ключе, используя формат явной кривой в работающем разделе ECDiffieHellman в структуру ECParameters таким образом, чтобы их можно было передать в метод ImportParameters(ECParameters).When overridden in a derived class, exports either the public or the public and private key information using the explicit curve form from a working ECDiffieHellman key to an ECParameters structure so that it can be passed to the ImportParameters(ECParameters) method.

(Унаследовано от ECDiffieHellman)
ExportParameters(Boolean)

Exports the key used by the ECCurve object into an ECParameters object.Exports the key used by the ECCurve object into an ECParameters object.

ExportParameters(Boolean)

При переопределении в производном классе экспортирует сведения об открытом или открытом и закрытом ключе из рабочего раздела ECDiffieHellman в структуру ECParameters таким образом, чтобы их можно было передать в метод ImportParameters(ECParameters).When overridden in a derived class, exports either the public or the public and private key information from a working ECDiffieHellman key to an ECParameters structure so that it can be passed to the ImportParameters(ECParameters) method.

(Унаследовано от ECDiffieHellman)
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.This method is not implemented.

FromXmlString(String)

Этот метод выдает исключение во всех случаях.This method throws in all cases.

(Унаследовано от ECDiffieHellman)
FromXmlString(String, ECKeyXmlFormat)

Deserializes the key information from an XML string by using the specified format.Deserializes the key information from an XML string by using the specified format.

GenerateKey(ECCurve)

Generates a new ephemeral public/private key pair for the specified curve.Generates a new ephemeral public/private key pair for the specified curve.

GenerateKey(ECCurve)

При переопределении в производном классе создает новую пару открытого и закрытого эфемерных ключей для указанной кривой.When overridden in a derived class, generates a new ephemeral public/private key pair for the specified curve.

(Унаследовано от ECDiffieHellman)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
ImportECPrivateKey(ReadOnlySpan<Byte>, Int32)

Импортирует пару открытого и закрытого ключей из структуры ECPrivateKey и заменяет ключи для этого объекта.Imports the public/private keypair from an ECPrivateKey structure, replacing the keys for this object.

(Унаследовано от ECDiffieHellman)
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.

(Унаследовано от ECDiffieHellman)
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.

(Унаследовано от ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>) (Унаследовано от ECDiffieHellman)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>) (Унаследовано от ECDiffieHellman)
ImportFromPem(ReadOnlySpan<Char>) (Унаследовано от ECDiffieHellman)
ImportParameters(ECParameters)

Imports the specified parameters for an ECCurve object as a key into the current instance.Imports the specified parameters for an ECCurve object as a key into the current instance.

ImportParameters(ECParameters)

При переопределении в производном классе импортирует заданные параметры для ECCurve как эфемерный ключ в текущий объект ECDiffieHellman.When overridden in a derived class, imports the specified parameters for an ECCurve as an ephemeral key into the current ECDiffieHellman object.

(Унаследовано от ECDiffieHellman)
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.

(Унаследовано от ECDiffieHellman)
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.

(Унаследовано от ECDiffieHellman)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
ToXmlString(Boolean)

This method is not implemented.This method is not implemented.

ToXmlString(Boolean)

Этот метод выдает исключение во всех случаях.This method throws in all cases.

(Унаследовано от ECDiffieHellman)
ToXmlString(ECKeyXmlFormat)

Serializes the key information to an XML string by using the specified format.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.

(Унаследовано от ECDiffieHellman)
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.

(Унаследовано от ECDiffieHellman)
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.

(Унаследовано от ECDiffieHellman)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Пытается экспортировать текущий ключ в формате PKCS#8 PrivateKeyInfo в предоставленный буфер.Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into a provided buffer.

(Унаследовано от ECDiffieHellman)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Пытается экспортировать текущий ключ в формате X.509 SubjectPublicKeyInfo в предоставленный буфер.Attempts to export the current key in the X.509 SubjectPublicKeyInfo format into a provided buffer.

(Унаследовано от ECDiffieHellman)

Явные реализации интерфейса

IDisposable.Dispose()

Описание этого элемента см. в разделе Dispose().For a description of this member, see Dispose().

(Унаследовано от AsymmetricAlgorithm)

Применяется к