Partager via


Fonction WinVerifyTrustEx (wintrust.h)

La fonction WinVerifyTrustEx effectue une action de vérification d’approbation sur un objet spécifié et prend un pointeur vers une structure WINTRUST_DATA . La fonction transmet l’enquête à un fournisseur d’approbation, le cas échéant, qui prend en charge l’identificateur d’action.

Pour la vérification des certificats, utilisez les fonctions CertGetCertificateChain et CertVerifyCertificateChainPolicy .

Syntaxe

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

Paramètres

[in] hwnd

Handle facultatif vers une fenêtre d’appelant. Un fournisseur d’approbation peut utiliser cette valeur pour déterminer s’il peut interagir avec l’utilisateur. Toutefois, les fournisseurs d’approbation effectuent généralement des actions de vérification sans entrée de l’utilisateur.

Ce paramètre peut être l’une des valeurs suivantes.

Valeur Meaning
INVALID_HANDLE_VALUE
Il n’existe aucun utilisateur interactif. Le fournisseur d’approbation effectue l’action de vérification sans l’assistance de l’utilisateur.
Zéro
Le fournisseur d’approbation peut utiliser le bureau interactif pour afficher son interface utilisateur.
Handle de fenêtre valide
Un fournisseur d’approbation peut traiter n’importe quelle valeur autre que INVALID_HANDLE_VALUE ou zéro comme un handle de fenêtre valide qu’il peut utiliser pour interagir avec l’utilisateur.

[in] pgActionID

Pointeur vers une structure GUID qui identifie une action et le fournisseur d’approbation qui prend en charge cette action. Cette valeur indique le type d’action de vérification à effectuer sur la structure pointée par pWinTrustData.

Le service WinTrust est conçu pour fonctionner avec des fournisseurs d’approbation implémentés par des tiers. Chaque fournisseur d’approbation fournit son propre ensemble unique d’identificateurs d’action. Pour plus d’informations sur les identificateurs d’action pris en charge par un fournisseur d’approbation, consultez la documentation de ce fournisseur d’approbation.

Par exemple, Microsoft fournit un fournisseur d’approbation d’éditeur de logiciels qui peut établir la fiabilité des logiciels téléchargés à partir d’Internet ou d’un autre réseau public. Le fournisseur d’approbation de l’éditeur de logiciels prend en charge les identificateurs d’action suivants. Ces constantes sont définies dans Softpub.h.

Valeur Meaning
DRIVER_ACTION_VERIFY
Vérifiez l’authenticité d’un pilote signé WHQL (Hardware Quality Labs) Windows. Il s’agit d’un fournisseur de stratégie de module complémentaire Authenticode.
HTTPSPROV_ACTION
Vérifiez une connexion SSL/TLS établie par WinINet.
OFFICESIGN_ACTION_VERIFY
Cet ID d’action n’est pas pris en charge. Vérifiez l’authenticité d’un fichier de stockage structuré à l’aide du fournisseur de stratégie de module complémentaire Microsoft Office Authenticode.

Windows Server 2003 et Windows XP : Cet ID d’action est pris en charge.

WINTRUST_ACTION_GENERIC_CERT_VERIFY
Vérifiez une chaîne de certificats uniquement. Cela est valide uniquement lors de la transmission d’un contexte de certificat dans les structures d’entrée WinVerifyTrust .
Note Nous vous déconseillons d’utiliser cette fonction pour effectuer la vérification des certificats. Pour effectuer la vérification des certificats, utilisez les fonctions CertGetCertificateChain et CertVerifyCertificateChainPolicy .
 
WINTRUST_ACTION_GENERIC_CHAIN_VERIFY
Vérifiez les chaînes de certificats créées à partir de n’importe quel type d’objet. Un rappel est fourni pour implémenter la stratégie de chaîne finale à l’aide du contexte de chaîne pour chaque signataire et signataire de compteur.
WINTRUST_ACTION_GENERIC_VERIFY_V2
Vérifiez un fichier ou un objet à l’aide du fournisseur de stratégie Authenticode.
WINTRUST_ACTION_TRUSTPROVIDER_TEST
Écrivez la structure CRYPT_PROVIDER_DATA dans un fichier après avoir appelé le fournisseur de stratégie Authenticode.

[in] pWinTrustData

Pointeur vers une structure WINTRUST_DATA qui contient des informations que le fournisseur d’approbation doit traiter l’identificateur d’action spécifié. En règle générale, la structure inclut des informations qui identifient l’objet que le fournisseur d’approbation doit évaluer.

Le format de la structure dépend de l’identificateur d’action. Pour plus d’informations sur les données requises pour un identificateur d’action spécifique, consultez la documentation du fournisseur d’approbation qui prend en charge cette action.

Valeur de retour

Notez que si le type de retour est déclaré comme HRESULT, cette API retourne des codes d’erreur Win32, n’utilisez pas SUCCEEDED() ou FAILED() pour tester le résultat.

Si le fournisseur d’approbation vérifie que l’objet est approuvé pour l’action spécifiée, la valeur de retour est ERROR_SUCCESS. Sinon, la fonction retourne un code d’état du fournisseur d’approbation.

Par exemple, un fournisseur d’approbation peut indiquer que le sujet n’est pas approuvé ou est approuvé, mais avec des limitations ou des avertissements. La valeur de retour peut être une valeur spécifique à un fournisseur d’approbation décrite dans la documentation d’un fournisseur d’approbation individuel, ou il peut s’agir de l’un des codes d’erreur suivants.

Retourner le code Descriptif
TRUST_E_SUBJECT_NOT_TRUSTED
L’objet a échoué l’action de vérification spécifiée. La plupart des fournisseurs d’approbation retournent un code d’erreur plus détaillé qui décrit la raison de l’échec.
Note  

Le code de retour TRUST_E_SUBJECT_NOT_TRUSTED peut être retourné en fonction de la valeur de la clé de Registre EnableCertPaddingCheck sous HKLM\Software\Microsoft\Cryptography\Wintrust\Config. Si EnableCertPaddingCheck a la valeur « 1 », une vérification supplémentaire est effectuée pour vérifier que la structure WIN_CERTIFICATE ne contient pas d’informations superflues. La vérification vérifie qu’il n’y a pas de données non nulles au-delà de la structure PKCS #7. Pour plus d’informations, reportez-vous à l’avis de sécurité suivant : http://technet.microsoft.com/security/advisory/2915720#section1.

 
TRUST_E_PROVIDER_UNKNOWN
Le fournisseur d’approbation n’est pas reconnu sur ce système.
TRUST_E_ACTION_UNKNOWN
Le fournisseur d’approbation ne prend pas en charge l’action spécifiée.
TRUST_E_SUBJECT_FORM_UNKNOWN
Le fournisseur d’approbation ne prend pas en charge le formulaire spécifié pour l’objet.

Spécifications

Requirement Valeur
Client minimum requis Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Fenêtres
Header wintrust.h
Library Wintrust.lib
DLL Wintrust.dll