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.

Valor Significado
INVALID_HANDLE_VALUE
No hay ningún usuario interactivo. El proveedor de confianza realiza la acción de comprobación sin la ayuda del usuario.
Cero
El proveedor de confianza puede usar el escritorio interactivo para mostrar su interfaz de usuario.
Un identificador de ventana válido
Un proveedor de confianza puede tratar cualquier valor distinto de INVALID_HANDLE_VALUE o cero como identificador de ventana válido que pueda usar para interactuar con el usuario.

[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
DRIVER_ACTION_VERIFY
Compruebe la autenticidad de un controlador firmado de Windows Hardware Quality Labs (WHQL). Se trata de un proveedor de directivas de complemento Authenticode.
HTTPSPROV_ACTION
Compruebe una conexión SSL/TLS a través de Internet Explorer.
OFFICESIGN_ACTION_VERIFY
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.

WINTRUST_ACTION_GENERIC_CERT_VERIFY
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 .
 
WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
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.
WINTRUST_ACTION_GENERIC_VERIFY_V2
Compruebe un archivo u objeto mediante el proveedor de directivas Authenticode.
WINTRUST_ACTION_TRUSTPROVIDER_TEST
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
TRUST_E_SUBJECT_NOT_TRUSTED
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.

 
TRUST_E_PROVIDER_UNKNOWN
El proveedor de confianza no se reconoce en este sistema.
TRUST_E_ACTION_UNKNOWN
El proveedor de confianza no admite la acción especificada.
TRUST_E_SUBJECT_FORM_UNKNOWN
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