Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция NCryptSignHash создает подпись хэш-значения.
Синтаксис
SECURITY_STATUS NCryptSignHash(
[in] NCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PBYTE pbHashValue,
[in] DWORD cbHashValue,
[out] PBYTE pbSignature,
[in] DWORD cbSignature,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Параметры
[in] hKey
Дескриптор ключа, используемый для подписи хэша.
[in, optional] pPaddingInfo
Указатель на структуру, содержащую сведения о заполнении. Фактический тип структуры, указываемой этим параметром, зависит от значения параметра dwFlags . Этот параметр используется только с асимметричными ключами и должен быть NULL
в противном случае.
[in] pbHashValue
Указатель на буфер, содержащий хэш-значение для подписи. Параметр cbInput содержит размер этого буфера.
[in] cbHashValue
Количество байтов в буфере pbHashValue для подписывания.
[out] pbSignature
Адрес буфера для получения сигнатуры, созданной этой функцией. Параметр cbSignature содержит размер этого буфера.
Если этот параметр задан NULL
, эта функция вычисляет размер, необходимый для подписи, и возвращает размер в расположении, на которое указывает параметр pcbResult .
[in] cbSignature
Размер в байтах буфера pbSignature . Этот параметр игнорируется, если параметр pbSignature имеет значение NULL
.
[out] pcbResult
Указатель на переменную DWORD , которая получает количество байтов, скопированных в буфер pbSignature .
Если pbSignature имеет NULL
значение, оно получает размер в байтах, необходимый для подписи.
[in] dwFlags
Флаги, изменяющие поведение функции. Допустимый набор флагов зависит от типа ключа, указанного параметром hKey .
Если ключ является симметричным ключом, этот параметр не используется и должен иметь значение нулю.
Если ключ является асимметричным ключом, это может быть одно из следующих значений:
Ценность | Значение |
---|---|
BCRYPT_PAD_PKCS1 | Используйте схему заполнения PKCS1. Параметр pPaddingInfo — это указатель на структуру BCRYPT_PKCS1_PADDING_INFO . |
BCRYPT_PAD_PQDSA | Используйте схему заполнения PQ для ML-DSA или SLH-DSA. Параметр pPaddingInfo — это указатель на структуру BCRYPT_PQDSA_PADDING_INFO . Заметка: Это необходимо задать, если используется предварительно хэш-ML-DSA вариант. |
BCRYPT_PAD_PSS | Используйте схему пробабилистической схемы подписи (PSS). Параметр pPaddingInfo — это указатель на структуру BCRYPT_PSS_PADDING_INFO . |
NCRYPT_SILENT_FLAG | Запрашивает, что поставщик ключевых служб (KSP) не отображает пользовательский интерфейс. Если поставщик должен отобразить пользовательский интерфейс для работы, вызов завершается ошибкой, и KSP должен задать код ошибки NTE_SILENT_CONTEXT в качестве последней ошибки. |
Возвращаемое значение
Возвращает код состояния, указывающий на успешность или сбой функции.
Возможные коды возврата включают, но не ограничиваются следующими:
Возможные коды возврата включают в себя, но не ограничиваются следующими.
Код возврата | Описание |
---|---|
|
Функция была успешной. |
|
Ключ, представленный параметром hKey , не поддерживает подписывание. |
|
Параметр dwFlags содержит недопустимое значение. |
|
Недопустимый параметр hKey . |
|
Один или несколько параметров недопустимы. |
|
Произошел сбой выделения памяти. |
Замечания
Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService , может произойти взаимоблокировка, а служба может перестать отвечать.
Требования
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент | Windows Vista [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
Заголовок | ncrypt.h |
Библиотека | Ncrypt.lib |
Библиотека dll | Ncrypt.dll |