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 |
---|---|
|
Le message ne contient pas d’attribut authentifié attendu. |
|
La valeur de hachage n’est pas correcte. |
|
Le message n’est pas encodé comme prévu. |
|
L’algorithme de chiffrement est inconnu. |
|
Un ou plusieurs arguments ne sont pas valides. |
|
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 |