Función WinVerifyTrustEx (wintrust.h)
La función WinVerifyTrustEx realiza una acción de comprobación de confianza en un objeto especificado y toma un puntero a una estructura WINTRUST_DATA . La función pasa la consulta a un proveedor de confianza, si existe, que admite el identificador de acción.
Para la comprobación de certificados, use las funciones CertGetCertificateChain y CertVerifyCertificateChainPolicy .
Sintaxis
long WinVerifyTrustEx(
[in] HWND hwnd,
[in] GUID *pgActionID,
[in] WINTRUST_DATA *pWinTrustData
);
Parámetros
[in] hwnd
Identificador opcional para una ventana del autor de la llamada. Un proveedor de confianza puede usar este valor para determinar si puede interactuar con el usuario. Sin embargo, los proveedores de confianza suelen realizar acciones de verificación sin entrada del usuario.
Este parámetro puede ser uno de los valores siguientes.
[in] pgActionID
Puntero a una estructura GUID que identifica una acción y el proveedor de confianza que admite esa acción. Este valor indica el tipo de acción de comprobación que se va a realizar en la estructura a la que apunta pWinTrustData.
El servicio WinTrust está diseñado para trabajar con proveedores de confianza implementados por terceros. Cada proveedor de confianza proporciona su propio conjunto único de identificadores de acción. Para obtener información sobre los identificadores de acción admitidos por un proveedor de confianza, consulte la documentación de ese proveedor de confianza.
Por ejemplo, Microsoft proporciona un proveedor de confianza para editores de software que puede establecer la confiabilidad del software que se descarga de Internet o de alguna otra red pública. El proveedor de confianza del publicador de software admite los siguientes identificadores de acción. Estas constantes se definen en Softpub.h.
Valor | Significado |
---|---|
|
Compruebe la autenticidad de un controlador firmado de Windows Hardware Quality Labs (WHQL). Se trata de un proveedor de directivas de complemento Authenticode. |
|
Compruebe una conexión SSL/TLS a través de Internet Explorer. |
|
No se admite este identificador de acción. Compruebe la autenticidad de un archivo de almacenamiento estructurado mediante el proveedor de directivas de complemento Microsoft Office Authenticode.
Windows Server 2003 y Windows XP: Se admite este identificador de acción. |
|
Compruebe solo una cadena de certificados. Esto solo es válido cuando se pasa un contexto de certificado en las estructuras de entrada WinVerifyTrust .
Nota No se recomienda usar esta función para realizar la comprobación del certificado. Para realizar la comprobación del certificado, use las funciones CertGetCertificateChain y CertVerifyCertificateChainPolicy .
|
|
Compruebe las cadenas de certificados creadas a partir de cualquier tipo de objeto. Se proporciona una devolución de llamada para implementar la directiva de cadena final mediante el contexto de cadena para cada firmante y firmante de contador. |
|
Compruebe un archivo u objeto mediante el proveedor de directivas Authenticode. |
|
Escriba la estructura CRYPT_PROVIDER_DATA en un archivo después de llamar al proveedor de directivas Authenticode. |
[in] pWinTrustData
Puntero a una estructura WINTRUST_DATA que contiene información que el proveedor de confianza necesita para procesar el identificador de acción especificado. Normalmente, la estructura incluye información que identifica el objeto que el proveedor de confianza debe evaluar.
El formato de la estructura depende del identificador de acción. Para obtener información sobre los datos necesarios para un identificador de acción específico, consulte la documentación del proveedor de confianza que admite esa acción.
Valor devuelto
Tenga en cuenta que, aunque el tipo de valor devuelto se declara como HRESULT, esta API devuelve códigos de error win32, no use SUCCEEDED() o FAILED() para probar el resultado.
Si el proveedor de confianza comprueba que el sujeto es de confianza para la acción especificada, el valor devuelto se ERROR_SUCCESS. De lo contrario, la función devuelve un código de estado del proveedor de confianza.
Por ejemplo, un proveedor de confianza puede indicar que el sujeto no es de confianza o es de confianza, pero con limitaciones o advertencias. El valor devuelto puede ser un valor específico del proveedor de confianza descrito en la documentación de un proveedor de confianza individual o puede ser uno de los siguientes códigos de error.
Código devuelto | Descripción |
---|---|
|
El asunto produjo un error en la acción de comprobación especificada. La mayoría de los proveedores de confianza devuelven un código de error más detallado que describe el motivo del error.
Nota
El código de retorno TRUST_E_SUBJECT_NOT_TRUSTED se puede devolver en función del valor de la clave del Registro EnableCertPaddingCheck en HKLM\Software\Microsoft\Cryptography\Wintrust\Config. Si EnableCertPaddingCheck está establecido en "1", se realiza una comprobación adicional para comprobar que la estructura de WIN_CERTIFICATE no contiene información extraña. La comprobación valida que no hay ningún dato distinto de cero más allá de la estructura PKCS #7. La tecla EnableCertPaddingCheck se establecerá en "1" de forma predeterminada el 10 de junio de 2014. Para obtener más información, consulte el siguiente aviso de seguridad: http://technet.microsoft.com/security/advisory/2915720#section1. |
|
El proveedor de confianza no se reconoce en este sistema. |
|
El proveedor de confianza no admite la acción especificada. |
|
El proveedor de confianza no admite el formulario especificado para el asunto. |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | wintrust.h |
Library | Wintrust.lib |
Archivo DLL | Wintrust.dll |