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


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

Функция CryptVerifyDetachedMessageHash проверяет отсоединяемый хэш.

Синтаксис

BOOL CryptVerifyDetachedMessageHash(
  [in]      PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]      BYTE                     *pbDetachedHashBlob,
  [in]      DWORD                    cbDetachedHashBlob,
  [in]      DWORD                    cToBeHashed,
  [in]      const BYTE * []          rgpbToBeHashed,
  [in]      DWORD []                 rgcbToBeHashed,
  [out]     BYTE                     *pbComputedHash,
  [in, out] DWORD                    *pcbComputedHash
);

Параметры

[in] pHashPara

Указатель на структуру CRYPT_HASH_MESSAGE_PARA , содержащую хэш-параметры.

[in] pbDetachedHashBlob

Указатель на закодированный отсоединяемый хэш.

[in] cbDetachedHashBlob

Размер отсоединяемого хэша (в байтах).

[in] cToBeHashed

Количество элементов в массивах rgpbToBeHashed и rgcbToBeHashed .

[in] rgpbToBeHashed

Массив указателей на буферы содержимого для хэширования.

[in] rgcbToBeHashed

Массив размеров (в байтах) для буферов содержимого, на которые указывают элементы массива rgcbToBeHashed .

[out] pbComputedHash

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

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

[in, out] pcbComputedHash

Указатель на DWORD , указывающий размер буфера pbComputedHash (в байтах). Когда функция возвращает значение, это значение DWORD содержит размер созданного хэша (в байтах). Хэш не будет возвращен, если этот параметр имеет значение NULL.

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

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

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

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

Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.

Ниже перечислены коды ошибок, наиболее часто возвращаемые функцией GetLastError .

Код возврата Описание
CRYPT_E_UNEXPECTED_MSG_TYPE
Не хэшированные криптографические сообщения.
E_INVALIDARG
Недопустимый тип кодирования сообщений . В настоящее время поддерживается только PKCS_7_ASN_ENCODING. Значение cbSize в *pHashPara недопустимо.
ERROR_MORE_DATA
Если буфер, заданный параметром pbComputedHash , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменную, на которую указывает pcbComputedHash.
 
Примечание Ошибки из вызываемых функций CryptCreateHash, CryptHashData и CryptGetHashParam могут быть распространены на эту функцию.

В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.

 

Требования

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

См. также раздел

CryptVerifyMessageHash

Упрощенные функции сообщений