Функция NCryptSignHash (ncrypt.h)
Функция 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 .
Если ключ является симметричным, этот параметр не используется и должен иметь нулевое значение.
Если ключ является асимметричным, это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
Используйте схему отбивки PKCS1. Параметр pPaddingInfo является указателем на BCRYPT_PKCS1_PADDING_INFO структуру. |
|
Используйте схему заполнения вероятностной сигнатуры (PSS). Параметр pPaddingInfo является указателем на структуру BCRYPT_PSS_PADDING_INFO . |
|
Запрашивает, чтобы поставщик служб ключей (KSP) не отображал пользовательский интерфейс. Если поставщик должен отображать пользовательский интерфейс для работы, вызов завершается сбоем, а KSP должен задать код ошибки NTE_SILENT_CONTEXT как последнюю ошибку. |
Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.
Возможные коды возврата включают, помимо прочего, следующие.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Ключ, представленный параметром hKey , не поддерживает подписывание. |
|
Параметр dwFlags содержит недопустимое значение. |
|
Недопустимый параметр hKey . |
|
Один или несколько параметров недопустимы. |
|
Произошел сбой выделения памяти. |
Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать.
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | ncrypt.h |
Библиотека | Ncrypt.lib |
DLL | Ncrypt.dll |