Функция BCryptSignHash (bcrypt.h)
Функция BCryptSignHash создает сигнатуру хэш-значения.
Синтаксис
NTSTATUS BCryptSignHash(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Параметры
[in] hKey
Дескриптор ключа, используемый для подписи хэша.
[in, optional] pPaddingInfo
Указатель на структуру, содержащую сведения о заполнении. Фактический тип структуры, указываемой этим параметром, зависит от значения параметра dwFlags. Этот параметр используется только с асимметричными ключами и должен быть null в противном случае.
[in] pbInput
Указатель на буфер, содержащий хэш-значение для подписи. Параметр cbInput содержит размер этого буфера.
[in] cbInput
Количество байтов в буфере pbInput для подписывания.
[out] pbOutput
Адрес буфера для получения сигнатуры, созданной этой функцией. Параметр cbOutput содержит размер этого буфера.
Если этот параметр null, эта функция вычисляет размер, необходимый для подписи, и возвращает размер в расположении, на которое указывает параметр pcbResult.
[in] cbOutput
Размер в байтах буфера pbOutput
[out] pcbResult
Указатель на переменную ULONG ULONG, которая получает количество байтов, скопированных в буфер pbOutput.
Если pbOutputNULL, это получает размер в байтах, необходимый для подписи.
[in] dwFlags
Набор флагов, изменяющих поведение этой функции. Допустимый набор флагов зависит от типа ключа, указанного параметром hKey.
Это может быть одно из следующих значений.
Ценность | Значение |
---|---|
|
Используйте схему заполнения PKCS1. Параметр pPaddingInfo |
|
Используйте схему пробабилистической схемы подписи (PSS). Параметр pPaddingInfo — это указатель на структуру BCRYPT_PSS_PADDING_INFO. |
Возвращаемое значение
Возвращает код состояния, указывающий на успешность или сбой функции.
Возможные коды возврата включают в себя, но не ограничиваются следующими.
Возвращаемый код | Описание |
---|---|
|
Функция была успешной. |
|
Дескриптор ключа, указанный параметром hKey, недопустим. |
|
Поставщик алгоритмов, используемый для создания дескриптора ключа, указанного параметром hKey, не является алгоритмом подписи. |
|
Произошел сбой выделения памяти. |
|
Размер памяти, указанный параметром cbOutput, недостаточно велик для хранения подписи. |
Замечания
Эта функция зашифрует хэш-значение с указанным ключом для создания подписи.
Чтобы позже убедиться, что подпись действительна, вызовите функцию BCryptVerifySignature с идентичным ключом и идентичным хэшом исходных данных.
В зависимости от того, какие режимы процессора поддерживает поставщик, BCryptSignHash можно вызывать из пользовательского режима или режима ядра. Вызывающие серверы режима ядра могут выполняться в PASSIVE_LEVELIRQL или DISPATCH_LEVEL IRQL. Если текущий уровень IRQL
Чтобы вызвать эту функцию в режиме ядра, используйте Cng.lib, которая входит в состав пакета средств разработки драйверов (DDK). Windows Server 2008 и Windows Vista: для вызова этой функции в режиме ядра используйте Ksecdd.lib.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | bcrypt.h |
библиотеки |
Bcrypt.lib |
DLL | Bcrypt.dll |