Функция CryptExportPublicKeyInfo (wincrypt.h)
Функция CryptExportPublicKeyInfo экспортирует сведения о открытом ключе, связанные с соответствующим закрытым ключом поставщика. Обновленную версию этой функции см. в разделе CryptExportPublicKeyInfoEx.
Синтаксис
BOOL CryptExportPublicKeyInfo(
[in] HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
[in] DWORD dwKeySpec,
[in] DWORD dwCertEncodingType,
[out] PCERT_PUBLIC_KEY_INFO pInfo,
[in, out] DWORD *pcbInfo
);
Параметры
[in] hCryptProvOrNCryptKey
Дескриптор поставщика служб шифрования (CSP), используемый при экспорте сведений об открытом ключе. Это должен быть дескриптор HCRYPTPROV , созданный с помощью функции CryptAcquireContext , или дескриптор NCRYPT_KEY_HANDLE , созданный с помощью функции NCryptOpenKey . Новые приложения всегда должны передавать NCRYPT_KEY_HANDLE дескриптор CNG CSP.
[in] dwKeySpec
Определяет закрытый ключ для использования из контейнера поставщика. Это может быть AT_KEYEXCHANGE или AT_SIGNATURE. Этот параметр игнорируется, если в параметре hCryptProvOrNCryptKey используется NCRYPT_KEY_HANDLE.
[in] dwCertEncodingType
Указывает используемый тип кодирования . Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
В настоящее время определены следующие типы кодирования:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[out] pInfo
Указатель на структуру CERT_PUBLIC_KEY_INFO для получения экспортируемых сведений открытого ключа.
Чтобы задать размер этих сведений для целей выделения памяти, этот параметр может иметь значение NULL. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbInfo
Указатель на DWORD , содержащий размер (в байтах) буфера, на который указывает параметр pInfo . Когда функция возвращает значение, DWORD содержит количество байтов, необходимых для возвращаемого буфера.
Возвращаемое значение
Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).
Если функция завершается сбоем, она возвращает ноль (FALSE). Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.
Код возврата | Описание |
---|---|
|
Если буфер, заданный параметром pInfo , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbInfo. |
|
Недопустимый тип кодирования сертификата. В настоящее время поддерживается только X509_ASN_ENCODING. |
В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |