Fonction CryptMsgVerifyCountersignatureEncoded (wincrypt.h)

La fonction CryptMsgVerifyCountersignatureEncoded vérifie une contre-signature en termes de structure SignerInfo (telle que définie par PKCS #7).

Syntaxe

BOOL CryptMsgVerifyCountersignatureEncoded(
  [in] HCRYPTPROV_LEGACY hCryptProv,
  [in] DWORD             dwEncodingType,
  [in] PBYTE             pbSignerInfo,
  [in] DWORD             cbSignerInfo,
  [in] PBYTE             pbSignerInfoCountersignature,
  [in] DWORD             cbSignerInfoCountersignature,
  [in] PCERT_INFO        pciCountersigner
);

Paramètres

[in] hCryptProv

Ce paramètre n’est pas utilisé et doit être défini sur NULL.

Windows Server 2003 et Windows XP : NULL ou le handle du fournisseur de chiffrement à utiliser pour hacher le champ encryptedDigest de pbSignerInfo. Le type de données de ce paramètre est HCRYPTPROV.

Sauf s’il existe une raison forte de passer un fournisseur de chiffrement spécifique dans hCryptProv, transmettez NULL pour entraîner l’utilisation du fournisseur RSA ou DSS par défaut.

[in] dwEncodingType

Spécifie le type d’encodage utilisé. Actuellement, seuls les X509_ASN_ENCODING et les PKCS_7_ASN_ENCODING sont utilisés ; toutefois, des types d’encodage supplémentaires peuvent être ajoutés à l’avenir. Pour l’un ou l’autre type d’encodage actuel, utilisez :

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbSignerInfo

Pointeur vers l’objet BLOB encodé qui contient le signataire du contenu d’un message à contresigner.

[in] cbSignerInfo

Nombre, en octets, de l’objet BLOB encodé pour le signataire du contenu.

[in] pbSignerInfoCountersignature

Pointeur vers l’objet BLOB encodé contenant les informations de contre-signature.

[in] cbSignerInfoCountersignature

Nombre, en octets, de l’objet BLOB encodé pour le contre-expéditeur du message.

[in] pciCountersigner

Pointeur vers un CERT_INFO qui inclut avec l’émetteur et le numéro de série du contre-signeur. Pour plus d'informations, consultez la section Notes.

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.

Le tableau suivant répertorie les codes d’erreur les plus couramment retournés par la fonction GetLastError .

Code de retour Description
CRYPT_E_AUTH_ATTR_MISSING
Le message ne contient pas d’attribut authentifié attendu.
CRYPT_E_HASH_VALUE
La valeur de hachage n’est pas correcte.
CRYPT_E_UNEXPECTED_ENCODING
Le message n’est pas encodé comme prévu.
CRYPT_E_UNKNOWN_ALGO
L’algorithme de chiffrement est inconnu.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
E_OUTOFMEMORY
Mémoire insuffisante.
 

Les erreurs propagées à partir des fonctions suivantes peuvent être retournées.

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.

Remarques

La vérification du contre-signature est effectuée à l’aide de la structure SIGNERINFO PKCS #7. La signature doit contenir le hachage chiffré du champ encryptedDigest de pbSignerInfo.

L’émetteur et le numéro de série du contre-signature doivent correspondre aux informations de contre-signature de pbSignerInfoCountersignature. Les seuls champs référencés à partir de pciCountersigner sont SerialNumber, Issuer et SubjectPublicKeyInfo. SubjectPublicKeyInfo est utilisé pour accéder à la clé publique qui est ensuite utilisée pour chiffrer le hachage à partir de pciCountersigner . Comparez-le donc au hachage de pbSignerInfo.

Exemples

Pour obtenir un exemple qui utilise cette fonction, consultez Exemple de programme C : Encodage et décodage d’un message contre-signé.

Configuration requise

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

Voir aussi

CryptMsgCountersign

CryptMsgCountersignEncoded

Fonctions de message de bas niveau

Fonctions de message simplifiées