MsiGetFileSignatureInformationA, 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ée pour obtenir le certificat de signataire et le hachage nécessaire pour remplir les tables MsiDigitalCertificate, MsiPatchCertificateet MsiDigitalSignature.
Windows Installer 2.0 : signatures numériques des correctifs n’est pas pris en charge. Windows Installer 2.0 utilise des signatures numériques comme moyen de détecter les ressources endommagées et ne peut vérifier que les signatures numériques des armoires externes, et uniquement à l’aide des tables MsiDigitalSignature et MsiDigitalCertificate.
Syntaxe
HRESULT MsiGetFileSignatureInformationA(
[in] LPCSTR 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 du certificat du signataire retourné
[out] pbHashData
Mémoire tampon de hachage retournée. Ce paramètre peut être 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 pointée par le paramètre pbHashData. Ce paramètre ne peut pas être NULL si pbHashData n’est pasNULL. Si ERROR_MORE_DATA est retourné, pbHashData donne la taille de la mémoire tampon requise pour contenir les données de hachage. Si ERROR_SUCCESS est retourné, il donne le nombre d’octets écrits dans la mémoire tampon de hachage. Le paramètre
Valeur de retour
Valeur | Signification |
---|---|
|
Réussite. |
|
Le 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ée, |
|
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.
Remarques
Lorsque vous demandez uniquement le contexte du certificat, un hachage non valide dans la signature numérique n’entraîne pas MsiGetFileSignatureInformation retourner 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 extraites du fichier par un appel à WinVerifyTrust. Le paramètre cppCertContext est un doublon du contexte de certificat du signataire de la signature. Il incombe à l’appelant d’appeler CertFreeCertificateContext de libérer le contexte du certificat une fois terminé.
Notez que MsiGetFileSignatureInformation nécessite la présence du fichier Wintrust.dll sur le système.
Note
L’en-tête msi.h définit MsiGetFileSignatureInformation comme 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.
Exigences
Exigence | Valeur |
---|---|
client minimum 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. Consultez la configuration requise de Windows Installer Run-Time pour plus d’informations sur le service pack Windows minimal requis par une version de Windows Installer. |
plateforme cible | Windows |
d’en-tête | msi.h |
bibliothèque | Msi.lib |
DLL | Msi.dll |
Voir aussi
signatures numériques et windows Installer