AsymmetricAlgorithm.ImportEncryptedPkcs8PrivateKey Метод

Определение

Перегрузки

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

При переопределении в производном классе импортирует пару открытого и закрытого ключей из структуры PKCS#8 EncryptedPrivateKeyInfo после расшифровки с помощью байтового пароля и заменяет ключи для этого объекта.

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

При переопределении в производном классе импортирует пару открытого и закрытого ключей из структуры PKCS#8 EncryptedPrivateKeyInfo после расшифровки с помощью символьного пароля и заменяет ключи для этого объекта.

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

При переопределении в производном классе импортирует пару открытого и закрытого ключей из структуры PKCS#8 EncryptedPrivateKeyInfo после расшифровки с помощью байтового пароля и заменяет ключи для этого объекта.

public:
 virtual void ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<System::Byte> passwordBytes, ReadOnlySpan<System::Byte> source, [Runtime::InteropServices::Out] int % bytesRead);
public virtual void ImportEncryptedPkcs8PrivateKey (ReadOnlySpan<byte> passwordBytes, ReadOnlySpan<byte> source, out int bytesRead);
abstract member ImportEncryptedPkcs8PrivateKey : ReadOnlySpan<byte> * ReadOnlySpan<byte> * int -> unit
override this.ImportEncryptedPkcs8PrivateKey : ReadOnlySpan<byte> * ReadOnlySpan<byte> * int -> unit
Public Overridable Sub ImportEncryptedPkcs8PrivateKey (passwordBytes As ReadOnlySpan(Of Byte), source As ReadOnlySpan(Of Byte), ByRef bytesRead As Integer)

Параметры

passwordBytes
ReadOnlySpan<Byte>

Байты, используемые в качестве пароля при расшифровке материала ключа.

source
ReadOnlySpan<Byte>

Байты структуры PKCS#8 EncryptedPrivateKeyInfo в кодировке ASN.1-BER.

bytesRead
Int32

При возврате метода содержит значение, которое показывает количество символов, считанных из source. Этот параметр обрабатывается как неинициализированный.

Исключения

Пароль неверный.

-или-

Содержимое source, указывающее, что как функцию формирования ключа (KDF) следует использовать устаревшую версию PKCS#12 KDF, которая требует пароли на основе Char.

-или-

Содержимое source не представляет структуру PKCS#8 EncryptedPrivateKeyInfo в кодировке ASN.1-BER.

-или-

Содержимое source указывает, что ключ относится к алгоритму, отличному от алгоритма, представленного этим экземпляром.

-или-

Содержимое source представляет ключ в неподдерживаемом формате.

-или-

Не удалось выполнить импорт ключа, зависящего от алгоритма.

Этот элемент не был переопределен в производном типе.

Комментарии

Байты паролей передаются непосредственно в функцию формирования ключей (KDF), используемую алгоритмом, указанным в параметре pbeParameters. Это позволяет обеспечить совместимость с другими системами, использующими кодировку текста, отличной от UTF-8 при обработке паролей с помощью PBKDF2 (функция на основе ключа на основе пароля 2).

Этот метод поддерживает только двоичную кодировку (BER/CER/DER) EncryptedPrivateKeyInfo. Если значение закодировано в Кодировке Base64 или в текстовом формате PEM, вызывающий объект должен декодировать содержимое в Base64 перед вызовом этого метода.

Так как для интерпретации содержимого этого формата данных требуется поддержка конкретного алгоритма, ImportEncryptedPkcs8PrivateKey по умолчанию создается исключение NotImplementedException .

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

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

При переопределении в производном классе импортирует пару открытого и закрытого ключей из структуры PKCS#8 EncryptedPrivateKeyInfo после расшифровки с помощью символьного пароля и заменяет ключи для этого объекта.

public:
 virtual void ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<char> password, ReadOnlySpan<System::Byte> source, [Runtime::InteropServices::Out] int % bytesRead);
public virtual void ImportEncryptedPkcs8PrivateKey (ReadOnlySpan<char> password, ReadOnlySpan<byte> source, out int bytesRead);
abstract member ImportEncryptedPkcs8PrivateKey : ReadOnlySpan<char> * ReadOnlySpan<byte> * int -> unit
override this.ImportEncryptedPkcs8PrivateKey : ReadOnlySpan<char> * ReadOnlySpan<byte> * int -> unit
Public Overridable Sub ImportEncryptedPkcs8PrivateKey (password As ReadOnlySpan(Of Char), source As ReadOnlySpan(Of Byte), ByRef bytesRead As Integer)

Параметры

password
ReadOnlySpan<Char>

Пароль, используемый при расшифровке материала ключа.

source
ReadOnlySpan<Byte>

Байты структуры PKCS#8 EncryptedPrivateKeyInfo в кодировке ASN.1-BER.

bytesRead
Int32

При возврате метода содержит значение, которое показывает количество символов, считанных из source. Этот параметр обрабатывается как неинициализированный.

Исключения

Пароль неверный.

-или-

Содержимое source не представляет структуру PKCS#8 EncryptedPrivateKeyInfo в кодировке ASN.1-BER.

-или-

Содержимое source указывает, что ключ относится к алгоритму, отличному от алгоритма, представленного этим экземпляром.

-или-

Содержимое source представляет ключ в неподдерживаемом формате.

-или-

Не удалось выполнить импорт ключа, зависящего от алгоритма.

Этот элемент не был переопределен в производном типе.

Комментарии

При указании содержимого алгоритма source , использующего PBKDF1 (функция производного ключа на основе паролей 1) или PBKDF2 (функция на основе ключа на основе пароля 2), пароль преобразуется в байты с помощью кодировки UTF-8.

Этот метод поддерживает только двоичную кодировку (BER/CER/DER) EncryptedPrivateKeyInfo. Если значение закодировано в Кодировке Base64 или в текстовом формате PEM, вызывающий объект должен декодировать содержимое в Base64 перед вызовом этого метода.

Так как для интерпретации содержимого этого формата данных требуется поддержка конкретного алгоритма, ImportEncryptedPkcs8PrivateKey по умолчанию создается исключение NotImplementedException .

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