Функция 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 недопустим. После вызова функции BCryptFinishHash для хэш-дескриптора этот дескриптор нельзя использовать повторно. |
Комментарии
Чтобы объединить несколько буферов в хэш или MAC, можно вызывать эту функцию несколько раз, каждый раз передавая разные буферы. Чтобы получить значение хэша или MAC, вызовите функцию BCryptFinishHash . После вызова функции BCryptFinishHash для указанного дескриптора этот дескриптор нельзя использовать повторно.
В зависимости от того, какие режимы процессора поддерживает поставщик, 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] |
Целевая платформа | Windows |
Header | bcrypt.h |
Библиотека | Bcrypt.lib |
DLL | Bcrypt.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по