Поделиться через


Функция NCryptVerifySignature (ncrypt.h)

Функция NCryptVerifySignature проверяет соответствие указанной сигнатуры указанному хэшу.

Синтаксис

SECURITY_STATUS NCryptVerifySignature(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PBYTE             pbHashValue,
  [in]           DWORD             cbHashValue,
  [in]           PBYTE             pbSignature,
  [in]           DWORD             cbSignature,
  [in]           DWORD             dwFlags
);

Параметры

[in] hKey

Дескриптор ключа, используемого для расшифровки подписи. Это должен быть идентичный ключ или часть открытого ключа пары ключей, используемая для подписывания данных с помощью функции NCryptSignHash .

[in, optional] pPaddingInfo

Указатель на структуру, содержащую сведения о заполнении. Фактический тип структуры, на который указывает этот параметр, зависит от значения параметра dwFlags . Этот параметр используется только с асимметричными ключами и в противном случае должен иметь значение NULL .

[in] pbHashValue

Адрес буфера, содержащего хэш данных. Параметр cbHash содержит размер этого буфера.

[in] cbHashValue

Размер буфера pbHash в байтах.

[in] pbSignature

Адрес буфера, содержащего подписанный хэш данных. Для создания сигнатуры используется функция NCryptSignHash . Параметр cbSignature содержит размер этого буфера.

[in] cbSignature

Размер буфера pbSignature в байтах. Для создания сигнатуры используется функция NCryptSignHash .

[in] dwFlags

Флаги, изменяющие поведение функции. Допустимый набор флагов зависит от типа ключа, указанного параметром hKey .

Если ключ является симметричным, этот параметр не используется и должен быть равен нулю.

Если ключ является асимметричным, это может быть одно из следующих значений.

Значение Значение
NCRYPT_PAD_PKCS1_FLAG
Схема заполнения PKCS1 использовалась при создании подписи. Параметр pPaddingInfo является указателем на структуру BCRYPT_PKCS1_PADDING_INFO .
NCRYPT_PAD_PSS_FLAG
При создании подписи использовалась схема заполнения вероятностной схемы подписи (PSS). Параметр pPaddingInfo является указателем на структуру BCRYPT_PSS_PADDING_INFO .
NCRYPT_SILENT_FLAG
Запрашивает, чтобы поставщик служб ключей (KSP) не отображал пользовательский интерфейс. Если поставщик должен отобразить пользовательский интерфейс для работы, вызов завершается ошибкой и KSP должен задать код ошибки NTE_SILENT_CONTEXT в качестве последней ошибки.

Возвращаемое значение

Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.

Возможные коды возврата включают, помимо прочего, следующие.

Код возврата Описание
ERROR_SUCCESS
Функция выполнена успешно.
NTE_BAD_SIGNATURE
Подпись не была проверена.
NTE_INVALID_HANDLE
Недопустимый параметр hKey .
NTE_NO_MEMORY
Произошел сбой выделения памяти.
NTE_NOT_SUPPORTED
Поставщик алгоритма, используемый для создания дескриптора ключа, указанного параметром hKey, не является алгоритмом подписывания.

Комментарии

Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать на запросы.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header ncrypt.h
Библиотека Ncrypt.lib
DLL Ncrypt.dll

См. также раздел

NCryptSignHash