Функция CryptHashMessage (wincrypt.h)
Функция CryptHashMessage создает хэш сообщения.
Синтаксис
BOOL CryptHashMessage(
[in] PCRYPT_HASH_MESSAGE_PARA pHashPara,
[in] BOOL fDetachedHash,
[in] DWORD cToBeHashed,
[in] const BYTE * [] rgpbToBeHashed,
[in] DWORD [] rgcbToBeHashed,
[out] BYTE *pbHashedBlob,
[in, out] DWORD *pcbHashedBlob,
[out, optional] BYTE *pbComputedHash,
[in, out, optional] DWORD *pcbComputedHash
);
Параметры
[in] pHashPara
Указатель на структуру CRYPT_HASH_MESSAGE_PARA , содержащую параметры хэша.
[in] fDetachedHash
Если этот параметр имеет значение TRUE, в pbHashedBlob кодируется только pbComputedHashedBlob. В противном случае кодируются rgpbToBeHashed и pbComputedHash .
[in] cToBeHashed
Количество элементов массива в rgpbToBeHashed и rgcbToBeHashed. Этот параметр может быть только одним, если fDetachedHash не имеет значение TRUE.
[in] rgpbToBeHashed
Массив указателей на буферы, содержащие хэшированное содержимое.
[in] rgcbToBeHashed
Массив размеров (в байтах) буферов, на которые указывает rgpbToBeHashed.
[out] pbHashedBlob
Указатель на буфер для получения хэшированного сообщения, закодированного для передачи.
Этот параметр может иметь значение NULL , если хэшированные сообщения не требуются для дополнительной обработки или для задания размера хэшированного сообщения для целей выделения памяти. Хэшированные сообщения не будут возвращены, если этот параметр имеет значение NULL. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbHashedBlob
Указатель на DWORD , указывающий размер (в байтах) буфера, на который указывает параметр pbHashedBlob . При возврате функции эта переменная содержит размер в байтах расшифрованного сообщения, скопированного в pbHashedBlob. Этот параметр должен быть адресом DWORD , а не null , иначе длина буфера не будет возвращена.
[out, optional] pbComputedHash
Указатель на буфер для получения только что созданного хэш-значения. Этот параметр может иметь значение NULL , если созданный хэш не требуется для дополнительной обработки или для задания размера хэша в целях выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out, optional] pcbComputedHash
Указатель на DWORD , указывающий размер (в байтах) буфера, на который указывает параметр pbComputedHash . При возврате функции этот параметр DWORD содержит размер в байтах созданного хэша, скопированного в pbComputedHash.
Возвращаемое значение
Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).
Если функция завершается сбоем, она возвращает ноль (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
Код возврата | Описание |
---|---|
|
Недопустимый тип кодирования сообщений . В настоящее время поддерживается только PKCS_7_ASN_ENCODING. CbSize в *pHashPara является недопустимым. |
|
Если буфер, заданный параметром pbHashedBlob , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pbHashedBlob. |
Если функция завершается сбоем, GetLastError может вернуть ошибку кодирования и декодирования абстрактной синтаксической нотации 1 (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |