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