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


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

Если подпись содержит закодированные параметры, вызывается функция обратного вызова PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC для декодирования и возврата идентификатора хэш-алгоритма и при необходимости параметров сигнатуры.

Синтаксис

PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC PfnCryptExtractEncodedSignatureParametersFunc;

BOOL PfnCryptExtractEncodedSignatureParametersFunc(
  [in]            DWORD dwCertEncodingType,
  [in]            PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [out, optional] void **ppvDecodedSignPara,
  [out]           LPWSTR *ppwszCNGHashAlgid
)
{...}

Параметры

[in] dwCertEncodingType

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

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

Указатель на структуру CRYPT_ALGORITHM_IDENTIFIER , содержащую идентификатор объекта сигнатуры (OID) и его необязательные закодированные параметры.

[out, optional] ppvDecodedSignPara

Указатель на адрес для декодированных и выделенных параметров данных параметров сигнатуры. Возврат декодированного буфера необязателен.

[out] ppwszCNGHashAlgid

Указатель на адрес выделенной строки Юникода, представляющей идентификатор хэш-алгоритма CNG, извлеченный из параметров закодированной сигнатуры. Если эта функция возвращает значение TRUE, необходимо вернуть указатель, отличный от NULL .

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

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

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

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

Комментарии

Память для параметров ppvDecodedSignPara и ppwszCNGHashAlgid должна быть выделена с помощью функции LocalAlloc .

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

Константа Определение
CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC "CryptDllExtractEncodedSignatureParameters"

Требования

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