ECDiffieHellmanCng Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет реализацию CNG алгоритма Диффи-Хеллмана на эллиптических кривых (ECDH). Этот класс используется для выполнения криптографических операций.
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 выглядит следующим образом:
Алиса и Боб создают пару ключей для Diffie-Hellman операции обмена ключами.
Алиса и Боб настраивают KDF с помощью параметров, для согласования.
Алиса отправляет Бобу свой открытый ключ.
Боб отправляет Алисе свой открытый ключ.
Алиса и Боб используют открытые ключи друг друга для создания секретного соглашения и применяют KDF к секретному соглашению для создания материала ключа.
Конструкторы
ECDiffieHellmanCng() |
Инициализирует новый экземпляр класса ECDiffieHellmanCng с парой случайных пар ключей. |
ECDiffieHellmanCng(CngKey) |
Инициализирует новый экземпляр класса ECDiffieHellmanCng, используя указанный объект CngKey. |
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[]) |
Выполняет формирование ключа с использованием псевдослучайной функции (PRF) протокола TLS 1.1. |
DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[]) |
При реализации в производном классе выполняет формирование ключа с использованием псевдослучайной функции (PRF) протокола TLS 1.1. (Унаследовано от 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) |
Экспортирует текущий ключ в формате PKCS#8 EncryptedPrivateKeyInfo с паролем на основе байтов в кодировке PEM. (Унаследовано от AsymmetricAlgorithm) |
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters) |
Экспортирует текущий ключ в формате PKCS#8 EncryptedPrivateKeyInfo с паролем на основе символов в кодировке PEM. (Унаследовано от AsymmetricAlgorithm) |
ExportExplicitParameters(Boolean) |
Экспортирует ключ и параметры явной кривой, используемые объектом ECCurve, в объект ECParameters. |
ExportExplicitParameters(Boolean) |
При переопределении в производном классе экспортирует сведения об открытом или открытом и закрытом ключе, используя формат явной кривой в работающем разделе ECDiffieHellman в структуру ECParameters таким образом, чтобы их можно было передать в метод ImportParameters(ECParameters). (Унаследовано от ECDiffieHellman) |
ExportParameters(Boolean) |
Экспортирует ключ, используемый объектом ECCurve, в объект ECParameters. |
ExportParameters(Boolean) |
При переопределении в производном классе экспортирует сведения об открытом или открытом и закрытом ключе из рабочего раздела ECDiffieHellman в структуру ECParameters таким образом, чтобы их можно было передать в метод ImportParameters(ECParameters). (Унаследовано от ECDiffieHellman) |
ExportPkcs8PrivateKey() |
Экспортирует текущий ключ в формате PKCS#8 PrivateKeyInfo. (Унаследовано от AsymmetricAlgorithm) |
ExportPkcs8PrivateKeyPem() |
Экспортирует текущий ключ в формате PKCS#8 PrivateKeyInfo в кодировке PEM. (Унаследовано от AsymmetricAlgorithm) |
ExportSubjectPublicKeyInfo() |
Экспортирует открытую часть текущего ключа в формате X.509 SubjectPublicKeyInfo. (Унаследовано от AsymmetricAlgorithm) |
ExportSubjectPublicKeyInfoPem() |
Экспортирует часть текущего ключа с открытым ключом в формате X.509 SubjectPublicKeyInfo в кодировке PEM. (Унаследовано от AsymmetricAlgorithm) |
FromXmlString(String) |
Этот метод не реализован. |
FromXmlString(String) |
Этот метод выдает исключение во всех случаях. (Унаследовано от 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) |
Этот метод выдает исключение во всех случаях. (Унаследовано от ECDiffieHellman) |
ToXmlString(ECKeyXmlFormat) |
Устаревшие..
Выполняет сериализацию данных ключа в XML-строку, используя указанный формат. |
TryExportECPrivateKey(Span<Byte>, Int32) |
Пытается экспортировать текущий ключ в формате |
TryExportECPrivateKeyPem(Span<Char>, Int32) |
Пытается экспортировать текущий ключ в формате ECPrivateKey с кодировкой PEM в предоставленный буфер. (Унаследовано от 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) |
Пытается экспортировать текущий ключ в формате PKCS#8 EncryptedPrivateKeyInfo с паролем на основе байтов в кодировке PEM. (Унаследовано от AsymmetricAlgorithm) |
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32) |
Экспортирует текущий ключ в формате PKCS#8 EncryptedPrivateKeyInfo с паролем на основе символов в кодировке PEM. (Унаследовано от AsymmetricAlgorithm) |
TryExportPkcs8PrivateKey(Span<Byte>, Int32) |
Пытается экспортировать текущий ключ в формате PKCS#8 PrivateKeyInfo в предоставленный буфер. |
TryExportPkcs8PrivateKey(Span<Byte>, Int32) |
Пытается экспортировать текущий ключ в формате PKCS#8 PrivateKeyInfo в предоставленный буфер. (Унаследовано от ECDiffieHellman) |
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32) |
Пытается экспортировать текущий ключ в формате PKCS#8 PrivateKeyInfo с кодировкой PEM в предоставленный буфер. (Унаследовано от AsymmetricAlgorithm) |
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32) |
Пытается экспортировать текущий ключ в формате X.509 SubjectPublicKeyInfo в предоставленный буфер. (Унаследовано от ECDiffieHellman) |
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32) |
Пытается экспортировать текущий ключ в формате X.509 SubjectPublicKeyInfo в кодировке PEM в предоставленный буфер. (Унаследовано от AsymmetricAlgorithm) |
Явные реализации интерфейса
IDisposable.Dispose() |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Описание этого члена см. в разделе Dispose(). (Унаследовано от AsymmetricAlgorithm) |