Функция WinVerifyTrustEx (wintrust.h)
Функция WinVerifyTrustEx выполняет действие проверки доверия для указанного объекта и принимает указатель на структуру WINTRUST_DATA . Функция передает запрос поставщику доверия, если таковой существует, который поддерживает идентификатор действия.
Для проверки сертификата используйте функции CertGetCertificateChain и CertVerifyCertificateChainPolicy .
Синтаксис
long WinVerifyTrustEx(
[in] HWND hwnd,
[in] GUID *pgActionID,
[in] WINTRUST_DATA *pWinTrustData
);
Параметры
[in] hwnd
Необязательный дескриптор для окна вызывающего абонента. Поставщик доверия может использовать это значение, чтобы определить, может ли он взаимодействовать с пользователем. Однако поставщики доверия обычно выполняют действия проверки без ввода данных от пользователя.
Этот параметр может принимать одно из указанных ниже значений.
[in] pgActionID
Указатель на структуру GUID , которая идентифицирует действие, и поставщик доверия , поддерживающий это действие. Это значение указывает тип действия проверки, выполняемого в структуре, на которую указывает pWinTrustData.
Служба WinTrust предназначена для работы с поставщиками доверия, реализованными третьими лицами. Каждый поставщик доверия предоставляет собственный уникальный набор идентификаторов действий. Сведения об идентификаторах действий, поддерживаемых поставщиком доверия, см. в документации для этого поставщика доверия.
Например, корпорация Майкрософт предоставляет поставщику доверия издателя программного обеспечения, который может установить надежность программного обеспечения, скачиваемого из Интернета или другой общедоступной сети. Поставщик доверия издателя программного обеспечения поддерживает следующие идентификаторы действий. Эти константы определяются в Файле Softpub.h.
Значение | Значение |
---|---|
|
Проверьте подлинность драйвера Windows Hardware Quality Labs (WHQL). Это поставщик политики надстройки Authenticode. |
|
Проверьте подключение SSL/TLS через Интернет Обозреватель. |
|
Этот идентификатор действия не поддерживается. Проверьте подлинность структурированного файла хранилища с помощью поставщика политики надстройки Microsoft Office Authenticode.
Windows Server 2003 и Windows XP: Этот идентификатор действия поддерживается. |
|
Проверьте только цепочку сертификатов. Это допустимо только при передаче контекста сертификата во входных структурах WinVerifyTrust .
Примечание Мы не рекомендуем использовать эту функцию для проверки сертификата. Для проверки сертификата используйте функции CertGetCertificateChain и CertVerifyCertificateChainPolicy .
|
|
Проверьте цепочки сертификатов, созданные из объектов любого типа. Для реализации политики конечной цепочки предоставляется обратный вызов с использованием контекста цепочки для каждого подписывающего и счетчика подписывающего. |
|
Проверьте файл или объект с помощью поставщика политики Authenticode. |
|
Запишите структуру CRYPT_PROVIDER_DATA в файл после вызова поставщика политики Authenticode. |
[in] pWinTrustData
Указатель на структуру WINTRUST_DATA , содержащую сведения, необходимые поставщику доверия для обработки указанного идентификатора действия. Как правило, структура содержит сведения, определяющие объект, который должен оценить поставщик доверия.
Формат структуры зависит от идентификатора действия. Сведения о данных, необходимых для определенного идентификатора действия, см. в документации по поставщику доверия, поддерживающему это действие.
Возвращаемое значение
Обратите внимание, что хотя тип возвращаемого значения объявлен как HRESULT, этот API возвращает коды ошибок Win32, не используйте SUCCEEDED() или FAILED() для проверки результата.
Если поставщик доверия проверяет, является ли субъект доверенным для указанного действия, возвращаемое значение будет ERROR_SUCCESS. В противном случае функция возвращает код состояния от поставщика доверия.
Например, поставщик доверия может указывать, что субъект не является доверенным или доверенным, но с ограничениями или предупреждениями. Возвращаемое значение может быть конкретным поставщиком доверия, описанным в документации для отдельного поставщика доверия, или может быть одним из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
Субъект не выполнил указанное действие проверки. Большинство поставщиков доверия возвращают более подробный код ошибки, описывающий причину сбоя.
Примечание
Код возврата TRUST_E_SUBJECT_NOT_TRUSTED может быть возвращен в зависимости от значения раздела реестра EnableCertPaddingCheck в разделе HKLM\Software\Microsoft\Cryptography\Wintrust\Config. Если параметр EnableCertPaddingCheck имеет значение "1", выполняется дополнительная проверка, чтобы убедиться, что структура WIN_CERTIFICATE не содержит лишних сведений. Проверка проверяет отсутствие ненулевых данных за пределами структуры PKCS 7. 10 июня 2014 г. для ключа EnableCertPaddingCheck по умолчанию будет задано значение "1". Дополнительные сведения см. в следующих рекомендациях по безопасности: http://technet.microsoft.com/security/advisory/2915720#section1. |
|
Поставщик доверия не распознается в этой системе. |
|
Поставщик доверия не поддерживает указанное действие. |
|
Поставщик доверия не поддерживает форму, указанную для субъекта. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wintrust.h |
Библиотека | Wintrust.lib |
DLL | Wintrust.dll |