Fonction CryptSIPGetSignedDataMsg (mssip.h)

La fonction CryptSIPGetSignedDataMsg récupère une signature Authenticode à partir du fichier.

Syntaxe

BOOL CryptSIPGetSignedDataMsg(
  [in]      SIP_SUBJECTINFO *pSubjectInfo,
  [out]     DWORD           *pdwEncodingType,
  [in]      DWORD           dwIndex,
  [in, out] DWORD           *pcbSignedDataMsg,
  [out]     BYTE            *pbSignedDataMsg
);

Paramètres

[in] pSubjectInfo

Pointeur vers une structure de SIP_SUBJECTINFO qui contient des informations sur l’objet du message.

[out] pdwEncodingType

Type d’encodage de la signature Authenticode.

Ce paramètre peut être une combinaison d’une ou plusieurs des valeurs suivantes.

Valeur Signification
PKCS_7_ASN_ENCODING
65536 (0x10000)
Spécifie l’encodage des messages PKCS #7 .
X509_ASN_ENCODING
1 (0x1)
Spécifie l’encodage du certificat X.509 .

[in] dwIndex

Ce paramètre est réservé et doit être défini sur zéro.

[in, out] pcbSignedDataMsg

Longueur, en octets, de la mémoire tampon pointée vers le paramètre pbSignedDataMsg .

[out] pbSignedDataMsg

Pointeur vers une mémoire tampon pour recevoir la signature Authenticode retournée.

Pour déterminer la taille de la mémoire tampon nécessaire, définissez le paramètre pbSignedDataMsg sur NULL et appelez la fonction CryptSIPGetSignedDataMsg . Cette fonction place la taille requise de la mémoire tampon, en octets, dans la valeur pointée par pcbSignedDataMsg. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

Valeur retournée

Si la fonction réussit, la fonction retourne TRUE.

Si la fonction échoue, elle retourne FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Certains codes d’erreur possibles suivent.

Code de retour Description
CRYPT_E_NO_MATCH
La signature spécifiée par l’index est introuvable.
ERROR_BAD_FORMAT
Le format de fichier ou de données spécifié du package d’interface objet (SIP) n’est pas valide.
ERROR_INVALID_PARAMETER
La structure [SIP_SUBJECTINFO](/windows/desktop/api/mssip/ns-mssip-sip_subjectinfo) est un pointeur null.
ERROR_INSUFFICIENT_BUFFER
La taille de la mémoire tampon de message était insuffisante pour contenir les données récupérées. Le paramètre pcbSignedDataMsg a été défini pour indiquer la taille de mémoire tampon requise.
TRUST_E_SUBJECT_FORM_UNKNOWN
Le type d’objet spécifié n’est pas valide.

Remarques

Les sujets incluent, sans s’y limiter, les images exécutables portables (.exe), les images d’armoire (.cab), les fichiers plats et les fichiers catalogue. Chaque type de sujet utilise un sous-ensemble différent de ses données pour le calcul de hachage et nécessite une procédure différente pour le stockage et la récupération. Par conséquent, chaque type de sujet a une spécification SIP unique.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête mssip.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptSIPPutSignedDataMsg

CryptSIPRemoveSignedDataMsg