MsiGetFileSignatureInformationW, fonction (msi.h)
La fonction MsiGetFileSignatureInformation prend le chemin d’accès à un fichier qui a été signé numériquement et retourne le certificat de signataire et le hachage du fichier. MsiGetFileSignatureInformation peut être appelé pour obtenir le certificat de signataire et le hachage nécessaires pour remplir les tables MsiDigitalCertificate, MsiPatchCertificate et MsiDigitalSignature .
Windows Installer 3.0 et versions ultérieures : À compter de Windows Installer 3.0, Windows Installer peut vérifier les signatures numériques des correctifs (fichiers .msp) à l’aide des tables MsiPatchCertificate et MsiDigitalCertificate . Pour plus d’informations, consultez Recommandations pour la création d’installations sécurisées et de mise à jour corrective du contrôle de compte d’utilisateur (UAC).
Windows Installer 2.0 : Les signatures numériques des correctifs ne sont pas prises en charge. Windows Installer 2.0 utilise les signatures numériques comme un moyen de détecter les ressources endommagées et peut uniquement vérifier les signatures numériques des armoires externes, et uniquement à l’aide des tables MsiDigitalSignature et MsiDigitalCertificate .
Syntaxe
HRESULT MsiGetFileSignatureInformationW(
[in] LPCWSTR szSignedObjectPath,
[in] DWORD dwFlags,
[out] PCCERT_CONTEXT *ppcCertContext,
[out] LPBYTE pbHashData,
[in, out] LPDWORD pcbHashData
);
Paramètres
[in] szSignedObjectPath
Pointeur vers une chaîne terminée par null spécifiant le chemin d’accès complet au fichier qui contient la signature numérique.
[in] dwFlags
Indicateurs de cas d’erreur spéciaux.
[out] ppcCertContext
Contexte de certificat de signataire retourné
[out] pbHashData
Mémoire tampon de hachage retournée. Ce paramètre peut avoir la valeur NULL si les données de hachage ne sont pas demandées.
[in, out] pcbHashData
Pointeur vers une variable qui spécifie la taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre pbHashData . Ce paramètre ne peut pas avoir la valeur NULL si pbHashData n’a pas la valeur NULL. Si ERROR_MORE_DATA est retourné, pbHashData indique la taille de la mémoire tampon nécessaire pour contenir les données de hachage. Si ERROR_SUCCESS est retourné, cela indique le nombre d’octets écrits dans la mémoire tampon de hachage. Le paramètre pcbHashData est ignoré si pbHashData a la valeur NULL.
Valeur retournée
Valeur | Signification |
---|---|
|
Opération terminée correctement. |
|
Un paramètre non valide a été spécifié. |
|
WinVerifyTrust n’est pas disponible sur le système. MsiGetFileSignatureInformation nécessite la présence du fichier Wintrust.dll sur le système. |
|
Une mémoire tampon est trop petite pour contenir les données demandées. Si ERROR_MORE_DATA est retourné, pcbHashData indique la taille de la mémoire tampon nécessaire pour contenir les données de hachage. |
|
Le fichier n’est pas signé |
|
Le hachage actuel du fichier n’est pas valide en fonction du hachage stocké dans la signature numérique du fichier. |
|
Le certificat de signataire du fichier a été révoqué. La signature numérique du fichier est compromise. |
|
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. |
|
Le fournisseur d’approbation n’est pas reconnu sur ce système. |
|
Le fournisseur d’approbation ne prend pas en charge l’action spécifiée. |
|
Le fournisseur d’approbation ne prend pas en charge le formulaire spécifié pour l’objet. |
MsiGetFileSignatureInformation retourne également toutes les valeurs d’erreur Win32 mappées à leur type de données HRESULT équivalent par HRESULT_FROM_WIN32.
Notes
Lorsque vous demandez uniquement le contexte de certificat, un hachage non valide dans la signature numérique n’entraîne pas msiGetFileSignatureInformation à renvoyer une erreur irrécupérable. Pour renvoyer une erreur irrécupérable pour un hachage non valide, définissez l’indicateur MSI_INVALID_HASH_IS_FATAL dans le paramètre dwFlags .
Le contexte de certificat et les informations de hachage sont extraits du fichier par un appel à WinVerifyTrust. Le paramètre ppcCertContext est un doublon du contexte de certificat du signataire de la signature. Il incombe à l’appelant d’appeler CertFreeCertificateContext pour libérer le contexte de certificat lorsque vous avez terminé.
Notez que MsiGetFileSignatureInformation nécessite la présence du fichier Wintrust.dll sur le système.
Notes
L’en-tête msi.h définit MsiGetFileSignatureInformation comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Spécifications
Client minimal pris en charge | Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP. Pour plus d’informations sur le Service Pack Windows requis par une version de Windows Installer, consultez Configuration requise pour le runtime Windows. |
Plateforme cible | Windows |
En-tête | msi.h |
Bibliothèque | Msi.lib |
DLL | Msi.dll |