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

Функция обратного вызова PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC вызывается для подписывания и кодирования вычисляемого хэша.

Синтаксис

PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC PfnCryptSignAndEncodeHashFunc;

BOOL PfnCryptSignAndEncodeHashFunc(
  [in]      NCRYPT_KEY_HANDLE hKey,
  [in]      DWORD dwCertEncodingType,
  [in]      PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in]      void *pvDecodedSignPara,
  [in]      LPCWSTR pwszCNGPubKeyAlgid,
  [in]      LPCWSTR pwszCNGHashAlgid,
  [in]      BYTE *pbComputedHash,
  [in]      DWORD cbComputedHash,
  [out]     BYTE *pbSignature,
  [in, out] DWORD *pcbSignature
)
{...}

Параметры

[in] hKey

Дескриптор для API шифрования: закрытый ключ следующего поколения (CNG), используемый для подписывания хэша.

[in] dwCertEncodingType

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

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

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

[in] pvDecodedSignPara

Необязательный указатель на структуру данных декодированных параметров сигнатуры, ранее возвращенную функцией PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC .

[in] pwszCNGPubKeyAlgid

Строка Юникода, содержащая идентификатор алгоритма открытого ключа CNG, соответствующий pSignatureAlgorithm-pszObjId>.

[in] pwszCNGHashAlgid

Строка Юникода, содержащая идентификатор хэш-алгоритма CNG, соответствующий pSignatureAlgorithm-pszObjId> или идентификатору хэш-алгоритма в pvDecodedSignPara.

[in] pbComputedHash

Указатель на вычисляемые хэш-байты, возвращаемые функцией BCryptFinishHash , которая соответствует pwszCNGHashAlgid.

[in] cbComputedHash

Значение типа , представляющее длину вычисляемого хэша (в байтах).

[out] pbSignature

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

[in, out] pcbSignature

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

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

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

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

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

Комментарии

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

Константа Определение
CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC "CryptDllSignAndEncodeHash"

Требования

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