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


функция обратного вызова PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC (wincrypt.h)

Функция обратного вызова PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC вызывается CryptExportPublicKeyInfoEx для экспорта большого двоичного объекта открытого ключа и его кодирования.

Синтаксис

PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC PfnCryptExportPublicKeyInfoEx2Func;

BOOL PfnCryptExportPublicKeyInfoEx2Func(
  [in]            NCRYPT_KEY_HANDLE hNCryptKey,
  [in]            DWORD dwCertEncodingType,
  [in]            LPSTR pszPublicKeyObjId,
  [in]            DWORD dwFlags,
  [in, optional]  void *pvAuxInfo,
  [out, optional] PCERT_PUBLIC_KEY_INFO pInfo,
  [in, out]       DWORD *pcbInfo
)
{...}

Параметры

[in] hNCryptKey

Дескриптор поставщика служб шифрования (CSP), используемый при экспорте сведений об открытом ключе. Этот дескриптор должен быть дескриптором NCRYPT_KEY_HANDLE , который был создан с помощью функции NCryptOpenKey .

[in] dwCertEncodingType

Значение типа , указывающее используемый тип кодирования. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

В настоящее время определены следующие типы кодирования:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pszPublicKeyObjId

Указатель на строку, содержащую алгоритм открытого ключа.

[in] dwFlags

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

[in, optional] pvAuxInfo

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

[out, optional] pInfo

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

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

[in, out] pcbInfo

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

Примечание При обработке данных, возвращаемых в буфере, приложения должны использовать фактический размер возвращаемых данных. Фактический размер может быть немного меньше размера буфера, указанного на входных данных. (На входных данных размеры буфера обычно указываются достаточно большими, чтобы убедиться, что в буфере помещаются самые большие выходные данные.) В выходных данных переменная, на которую указывает этот параметр, обновляется с учетом фактического размера данных, скопированных в буфер.
 

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

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

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

Если эта функция обратного вызова не поддерживает алгоритм подписи, она должна возвращать значение FALSE и вызывать Метод SetLastError с ERROR_NOT_SUPPORTED.

Комментарии

Для развертывания этой функции обратного вызова можно использовать функции поддержки OID . Для этой цели Wincrypt.h определяет следующую константу.

Константа Определение
CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC "CryptDllExportPublicKeyInfoEx2"

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h