Поделиться через


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

Функция CryptExportPublicKeyInfoFromBCryptKeyHandle экспортирует сведения об открытом ключе, связанные с соответствующим закрытым ключом поставщика.

Синтаксис

BOOL CryptExportPublicKeyInfoFromBCryptKeyHandle(
  [in]            BCRYPT_KEY_HANDLE     hBCryptKey,
  [in]            DWORD                 dwCertEncodingType,
  [in, optional]  LPSTR                 pszPublicKeyObjId,
  [in]            DWORD                 dwFlags,
  [in, optional]  void                  *pvAuxInfo,
  [out, optional] PCERT_PUBLIC_KEY_INFO pInfo,
  [in, out]       DWORD                 *pcbInfo
);

Параметры

[in] hBCryptKey

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

[in] dwCertEncodingType

Указывает тип кодировки для сопоставления.

Это значение может быть побитовой комбинацией определенных в настоящее время типов кодирования:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in, optional] pszPublicKeyObjId

Указатель на идентификатор объекта (OID), который определяет устанавливаемую функцию, используемую для экспорта ключа. Если слово высокого порядка в OID не равно нулю, pszPublicKeyObjId является указателем на строку OID, например "2.5.29.1", или строку ASCII, например "file". Если слово высокого порядка в OID равно нулю, слово нижнего порядка указывает целочисленный идентификатор, используемый в качестве идентификатора объекта.

[in] dwFlags

Значение DWORD , указывающее, как экспортируются сведения об открытом ключе.

Значение Значение
CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
0x80000000
Пропускает открытые ключи в группе CRYPT_PUBKEY_ALG_OID_GROUP_ID , которые явно помечены флагом CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG .
CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
0x40000000
Пропускает открытые ключи в группе CRYPT_PUBKEY_ALG_OID_GROUP_ID , которые явно помечены флагом CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG .

[in, optional] pvAuxInfo

Этот параметр зарезервирован для использования в будущем и должен иметь значение NULL.

[out, optional] pInfo

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

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

[in, out] pcbInfo

Указатель на DWORD , содержащий размер (в байтах) буфера, на который указывает параметр pInfo . При возврате функции DWORD содержит количество байтов, хранящихся в буфере.

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

Функция возвращает значение TRUE , если оно выполнено успешно; в противном случае возвращается значение FALSE.

Комментарии

Если функции CryptExportPublicKeyInfoFromBCryptKeyHandle не удается найти устанавливаемую функцию OID для объекта OID, указанного параметром pszPublicKeyObjId , она пытается экспортировать ключ в виде открытого ключа RSA (szOID_RSA_RSA). Если ключ экспортируется как открытый ключ RSA, значения параметров dwFlags и pvAuxInfo не используются.

Требования

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