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


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

Функция CryptVerifyMessageHash проверяет хэш указанного содержимого.

Синтаксис

BOOL CryptVerifyMessageHash(
  [in]                PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]                BYTE                     *pbHashedBlob,
  [in]                DWORD                    cbHashedBlob,
  [out]               BYTE                     *pbToBeHashed,
  [in, out]           DWORD                    *pcbToBeHashed,
  [out, optional]     BYTE                     *pbComputedHash,
  [in, out, optional] DWORD                    *pcbComputedHash
);

Параметры

[in] pHashPara

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

[in] pbHashedBlob

Указатель на буфер, содержащий исходное содержимое и его хэш.

[in] cbHashedBlob

Размер исходного хэш-буфера в байтах.

[out] pbToBeHashed

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

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

[in, out] pcbToBeHashed

Указатель на DWORD , указывающий размер буфера pbToBeHashed в байтах . При возврате функции эта переменная содержит размер исходного содержимого, скопированного в pbToBeHashed, в байтах. Исходное содержимое не будет возвращено, если этот параметр имеет значение NULL.

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

[out, optional] pbComputedHash

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

[in, out, optional] pcbComputedHash

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

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

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

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

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

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

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

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

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

 

Требования

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

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

CryptVerifyDetachedMessageHash

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