Partager via


Fonction CryptVerifyDetachedMessageSignature (wincrypt.h)

La fonction CryptVerifyDetachedMessageSignature vérifie un message signé contenant une ou plusieurs signatures détachées.

Syntaxe

BOOL CryptVerifyDetachedMessageSignature(
  [in]            PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
  [in]            DWORD                      dwSignerIndex,
  [in]            const BYTE                 *pbDetachedSignBlob,
  [in]            DWORD                      cbDetachedSignBlob,
  [in]            DWORD                      cToBeSigned,
  [in]            const BYTE * []            rgpbToBeSigned,
  [in]            DWORD []                   rgcbToBeSigned,
  [out, optional] PCCERT_CONTEXT             *ppSignerCert
);

Paramètres

[in] pVerifyPara

Pointeur vers une structure CRYPT_VERIFY_MESSAGE_PARA contenant les paramètres de vérification.

[in] dwSignerIndex

Index de la signature à vérifier. Un message peut avoir plusieurs signataires et cette fonction peut être appelée à plusieurs reprises, en modifiant dwSignerIndex pour vérifier d’autres signatures. Si la fonction retourne FALSE et que GetLastError retourne CRYPT_E_NO_SIGNER, l’appel précédent a reçu le dernier signataire du message.

[in] pbDetachedSignBlob

Pointeur vers un objet BLOB contenant les signatures de message encodées.

[in] cbDetachedSignBlob

Taille, en octets, de la signature détachée.

[in] cToBeSigned

Nombre d’éléments de tableau dans rgpbToBeSigned et rgcbToBeSigned.

[in] rgpbToBeSigned

Tableau de pointeurs vers des mémoires tampons contenant le contenu à hacher.

[in] rgcbToBeSigned

Tableau de tailles, en octets, pour les mémoires tampons de contenu pointées dans rgpbToBeSigned.

[out, optional] ppSignerCert

Pointeur vers un pointeur vers une structure CERT_CONTEXT d’un certificat de signataire. Lorsque vous avez terminé d’utiliser le contexte de certificat, libérez-le en appelant la fonction CertFreeCertificateContext . Un pointeur vers une structure CERT_CONTEXT n’est pas retourné si ce paramètre a la valeur NULL.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro (TRUE).

Si la fonction échoue, la valeur de retour est zéro (FALSE).

Pour obtenir des informations d’erreur étendues, appelez GetLastError.

La liste suivante répertorie les codes d’erreur les plus couramment retournés par la fonction GetLastError .

Code de retour Description
E_INVALIDARG
Types d’encodage de message et de certificat non valides. Actuellement, seuls les PKCS_7_ASN_ENCODING et les X509_ASN_ENCODING_TYPE sont pris en charge. CbSize non valide dans *pVerifyPara.
CRYPT_E_UNEXPECTED_MSG_TYPE
Pas un message de chiffrement signé.
CRYPT_E_NO_SIGNER
Le message n’a pas de signataires ni de signataire pour le dwSignerIndex spécifié.
NTE_BAD_ALGID
Le message a été haché et signé à l’aide d’un algorithme inconnu ou non pris en charge.
NTE_BAD_SIGNATURE
La signature du message n’a pas été vérifiée.
 
Note Les erreurs des fonctions appelées CryptCreateHash, CryptHashData, CryptVerifySignature et CryptImportKey peuvent être propagées à cette fonction.

Si la fonction échoue, GetLastError peut renvoyer une erreur d’encodage/décodage ASN.1 ( Abstract Syntax Notation One ). Pour plus d’informations sur ces erreurs, consultez Valeurs de retour d’encodage/décodage ASN.1.

 

Configuration requise

   
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 wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptVerifyMessageSignature

Fonctions de message simplifiées