Функция CryptHashToBeSigned (wincrypt.h)
Синтаксис
BOOL CryptHashToBeSigned(
[in] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwCertEncodingType,
[in] const BYTE *pbEncoded,
[in] DWORD cbEncoded,
[out] BYTE *pbComputedHash,
[in, out] DWORD *pcbComputedHash
);
Параметры
[in] hCryptProv
Этот параметр не используется и должен иметь значение NULL.
Windows Server 2003 и Windows XP: Дескриптор поставщика служб шифрования (CSP) для вычисления хэша. Тип данных этого параметра — HCRYPTPROV.
Если нет веской причины для передачи определенного поставщика шифрования в hCryptProv, передается ноль. Передача нуля приводит к получению поставщика RSA или стандарта цифровой подписи (DSS) по умолчанию перед выполнением операций хэша, проверки подписи или шифрования получателей.
[in] dwCertEncodingType
Указывает используемый тип кодирования. Всегда допустимо указывать типы кодированиясертификатов и сообщений, объединяя их с побитовой операцией ИЛИ, как показано в следующем примере:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
В настоящее время определены следующие типы кодирования:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pbEncoded
Адрес буфера, содержащего хэш-содержимое. Это закодированная форма CERT_SIGNED_CONTENT_INFO.
[in] cbEncoded
Размер (в байтах) буфера.
[out] pbComputedHash
Указатель на буфер для получения вычисляемого хэша.
Этот параметр может иметь значение NULL , чтобы задать размер этих сведений для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbComputedHash
Указатель на DWORD , содержащий размер (в байтах) буфера, на который указывает параметр pbComputedHash . При возврате функции DWORD содержит количество байтов, хранящихся в буфере.
Возвращаемое значение
Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).
Если функция завершается сбоем, она возвращает ноль (FALSE). Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.
Код возврата | Описание |
---|---|
|
Если буфер, заданный параметром pbComputedHash , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменную, на которую указывает pcbComputedHash. |
|
Недопустимый тип кодирования сертификата. В настоящее время поддерживается только X509_ASN_ENCODING. |
|
Идентификатор объекта (OID) алгоритма сигнатуры не сопоставляет с известным или поддерживаемым хэш-алгоритмом. |
В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |