Функция BCryptHashData (bcrypt.h)
Функция BCryptHashData выполняет один способ хэша или код проверки подлинности сообщений (MAC) в буфере данных.
Синтаксис
NTSTATUS BCryptHashData(
[in, out] BCRYPT_HASH_HANDLE hHash,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[in] ULONG dwFlags
);
Параметры
[in, out] hHash
Дескриптор хэша или MAC-объекта, используемого для выполнения операции. Этот дескриптор получается путем вызова функции BCryptCreateHash.
[in] pbInput
Указатель на буфер, содержащий данные для обработки. Параметр cbInput содержит количество байтов в этом буфере. Эта функция не изменяет содержимое этого буфера.
[in] cbInput
Количество байтов в буфере pbInput.
[in] dwFlags
Набор флагов, изменяющих поведение этой функции. В настоящее время флаги не определены, поэтому этот параметр должен быть равен нулю.
Возвращаемое значение
Возвращает код состояния, указывающий на успешность или сбой функции.
Возможные коды возврата включают в себя, но не ограничиваются следующими.
Возвращаемый код | Описание |
---|---|
|
Функция была успешной. |
|
Один или несколько параметров недопустимы. |
|
Хэш-дескриптор в параметре hHash |
Замечания
Чтобы объединить несколько буферов в хэш или MAC, можно вызывать эту функцию несколько раз, передавая другой буфер каждый раз. Чтобы получить хэш-значение или ЗНАЧЕНИЕ MAC, вызовите функцию BCryptFinishHash. После вызова функции BCryptFinishH ash для указанного дескриптора этот дескриптор нельзя использовать повторно.
В зависимости от того, какие режимы процессора поддерживает поставщик, BCryptHashData можно вызывать из пользовательского режима или режима ядра. Вызывающие серверы режима ядра могут выполняться в PASSIVE_LEVELIRQL или DISPATCH_LEVEL IRQL. Если текущий уровень IRQL DISPATCH_LEVEL, то дескриптор, предоставленный в параметре hHash, должен быть производным от дескриптора алгоритма, возвращаемого поставщиком, который был открыт с помощью флага BCRYPT_PROV_DISPATCH, а все указатели, передаваемые в функцию BCryptHashData, должны ссылаться на неупакованную (или заблокированную) память.
Чтобы вызвать эту функцию в режиме ядра, используйте Cng.lib, которая входит в состав пакета средств разработки драйверов (DDK). Windows Server 2008 и Windows Vista: для вызова этой функции в режиме ядра используйте Ksecdd.lib.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | bcrypt.h |
библиотеки |
Bcrypt.lib |
DLL | Bcrypt.dll |