Função WinVerifyTrustEx (wintrust.h)

A função WinVerifyTrustEx executa uma ação de verificação de confiança em um objeto especificado e usa um ponteiro para uma estrutura WINTRUST_DATA . A função passa a consulta para um provedor de confiança, se houver, que dê suporte ao identificador de ação.

Para verificação de certificado, use as funções CertGetCertificateChain e CertVerifyCertificateChainPolicy .

Sintaxe

long WinVerifyTrustEx(
  [in] HWND          hwnd,
  [in] GUID          *pgActionID,
  [in] WINTRUST_DATA *pWinTrustData
);

Parâmetros

[in] hwnd

Identificador opcional para uma janela de chamador. Um provedor de confiança pode usar esse valor para determinar se ele pode interagir com o usuário. No entanto, os provedores de confiança normalmente executam ações de verificação sem a entrada do usuário.

Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
INVALID_HANDLE_VALUE
Não há nenhum usuário interativo. O provedor de confiança executa a ação de verificação sem a assistência do usuário.
Zero
O provedor de confiança pode usar a área de trabalho interativa para exibir sua interface do usuário.
Um identificador de janela válido
Um provedor de confiança pode tratar qualquer valor diferente de INVALID_HANDLE_VALUE ou zero como um identificador de janela válido que ele pode usar para interagir com o usuário.

[in] pgActionID

Um ponteiro para uma estrutura GUID que identifica uma ação e o provedor de confiança que dá suporte a essa ação. Esse valor indica o tipo de ação de verificação a ser executada na estrutura apontada por pWinTrustData.

O serviço WinTrust foi projetado para trabalhar com provedores de confiança implementados por terceiros. Cada provedor de confiança fornece seu próprio conjunto exclusivo de identificadores de ação. Para obter informações sobre os identificadores de ação compatíveis com um provedor de confiança, consulte a documentação desse provedor de confiança.

Por exemplo, a Microsoft fornece um Provedor de Confiança do Publicador de Software que pode estabelecer a confiabilidade do software que está sendo baixado da Internet ou de alguma outra rede pública. O Provedor de Confiança do Publicador de Software dá suporte aos seguintes identificadores de ação. Essas constantes são definidas em Softpub.h.

Valor Significado
DRIVER_ACTION_VERIFY
Verifique a autenticidade de um driver assinado do WHQL (Hardware Quality Labs) do Windows. Esse é um provedor de política de complemento do Authenticode.
HTTPSPROV_ACTION
Verifique uma conexão SSL/TLS por meio de Explorer da Internet.
OFFICESIGN_ACTION_VERIFY
Não há suporte para essa ID de Ação. Verifique a autenticidade de um arquivo de armazenamento estruturado usando o provedor de política de complemento microsoft Office Authenticode.

Windows Server 2003 e Windows XP: Há suporte para essa ID de Ação.

WINTRUST_ACTION_GENERIC_CERT_VERIFY
Verifique apenas uma cadeia de certificados. Isso só é válido ao passar um contexto de certificado nas estruturas de entrada WinVerifyTrust .
Nota Não recomendamos usar essa função para executar a verificação de certificado. Para executar a verificação de certificado, use as funções CertGetCertificateChain e CertVerifyCertificateChainPolicy .
 
WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
Verifique as cadeias de certificados criadas a partir de qualquer tipo de objeto. Um retorno de chamada é fornecido para implementar a política de cadeia final usando o contexto de cadeia para cada signatário e signatário de contador.
WINTRUST_ACTION_GENERIC_VERIFY_V2
Verifique um arquivo ou objeto usando o provedor de política Authenticode.
WINTRUST_ACTION_TRUSTPROVIDER_TEST
Escreva a estrutura CRYPT_PROVIDER_DATA em um arquivo depois de chamar o provedor de política Authenticode.

[in] pWinTrustData

Um ponteiro para uma estrutura WINTRUST_DATA que contém informações de que o provedor de confiança precisa para processar o identificador de ação especificado. Normalmente, a estrutura inclui informações que identificam o objeto que o provedor de confiança deve avaliar.

O formato da estrutura depende do identificador de ação. Para obter informações sobre os dados necessários para um identificador de ação específico, consulte a documentação do provedor de confiança que dá suporte a essa ação.

Retornar valor

Observe que, embora o tipo de retorno seja declarado como HRESULT, essa API retorna códigos de erro Win32, não use SUCCEEDED() ou FAILED() para testar o resultado.

Se o provedor de confiança verificar se o assunto é confiável para a ação especificada, o valor retornado será ERROR_SUCCESS. Caso contrário, a função retornará um código status do provedor de confiança.

Por exemplo, um provedor de confiança pode indicar que o assunto não é confiável ou é confiável, mas com limitações ou avisos. O valor retornado pode ser um valor específico do provedor de confiança descrito na documentação de um provedor de confiança individual ou pode ser um dos seguintes códigos de erro.

Código de retorno Descrição
TRUST_E_SUBJECT_NOT_TRUSTED
O assunto falhou na ação de verificação especificada. A maioria dos provedores de confiança retorna um código de erro mais detalhado que descreve o motivo da falha.
Observação  

O código de retorno TRUST_E_SUBJECT_NOT_TRUSTED pode ser retornado dependendo do valor da chave do Registro EnableCertPaddingCheck em HKLM\Software\Microsoft\Cryptography\Wintrust\Config. Se EnableCertPaddingCheck estiver definido como "1", um marcar adicional será executado para verificar se a estrutura WIN_CERTIFICATE não contém informações desnecessárias. O marcar valida que não há dados diferentes de zero além da estrutura PKCS nº 7. A chave EnableCertPaddingCheck será definida como "1" por padrão em 10 de junho de 2014. Para obter mais informações, consulte o seguinte aviso de segurança: http://technet.microsoft.com/security/advisory/2915720#section1.

 
TRUST_E_PROVIDER_UNKNOWN
O provedor de confiança não é reconhecido nesse sistema.
TRUST_E_ACTION_UNKNOWN
O provedor de confiança não dá suporte à ação especificada.
TRUST_E_SUBJECT_FORM_UNKNOWN
O provedor de confiança não dá suporte ao formulário especificado para o assunto.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wintrust.h
Biblioteca Wintrust.lib
DLL Wintrust.dll