Функция CryptExportPKCS8Ex (wincrypt.h)

[Функция CryptExportPKCS8Ex больше не доступна для использования в Windows Server 2008 и Windows Vista. Вместо этого используйте функцию PFXExportCertStoreEx .]

Функция CryptExportPKCS8Ex экспортирует закрытый ключ в формате PKCS #8. У этой функции нет связанной библиотеки импорта. Для динамической связи с Crypt32.dll необходимо использовать функции LoadLibrary и GetProcAddress .

Синтаксис

BOOL CryptExportPKCS8Ex(
  [in]            CRYPT_PKCS8_EXPORT_PARAMS *psExportParams,
  [in]            DWORD                     dwFlags,
  [in, optional]  void                      *pvAuxInfo,
  [out, optional] BYTE                      *pbPrivateKeyBlob,
  [in, out]       DWORD                     *pcbPrivateKeyBlob
);

Параметры

[in] psExportParams

Указатель на структуру CRYPT_PKCS8_EXPORT_PARAMS , содержащую сведения об экспортируемом ключе.

[in] dwFlags

Этот параметр должен иметь нулевое значение, если pbPrivateKeyBlob имеет значение NULL и 0x8000 в противном случае.

[in, optional] pvAuxInfo

Этот параметр должен иметь значение NULL.

[out, optional] pbPrivateKeyBlob

Указатель на массив структур BYTE для получения закрытого ключа для экспорта.

Закрытый ключ будет содержать сведения в типе PKCS #8 PrivateKeyInfo Abstract Syntax Notation One (ASN.1), который содержится в стандарте PKCS 8.

В целях выделения памяти можно получить размер экспортированного закрытого ключа, задав для этого параметра значение NULL. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

[in, out] pcbPrivateKeyBlob

Указатель на DWORD , который может содержать во входных данных размер в байтах выделения памяти, необходимый для хранения pbPrivateKeyBlob. Если pbPrivateKeyBlob имеет значение NULL, этот параметр возвращает размер выделения памяти, необходимый для второго вызова функции. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

Возвращаемое значение

Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).

Если функция завершается сбоем, она возвращает ноль (FALSE). Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.

Следующие коды ошибок относятся к этой функции.

Код возврата Описание
ERROR_UNSUPPORTED_TYPE
Не удалось найти функцию экспорта, которую можно установить или зарегистрировать.
ERROR_MORE_DATA
Если буфер, заданный параметром pbPrivateKeyBlob , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает параметр pcbPrivateKeyBlob .
 

В случае сбоя функции GetLastError возвращает ошибку кодирования и декодирования ASN.1. Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.

Комментарии

Эта функция поддерживается только для асимметричных ключей.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h
DLL Crypt32.dll

См. также раздел

CRYPT_PKCS8_EXPORT_PARAMS

CryptAcquireContext

CryptExportPKCS8

CryptImportPKCS8