Fonction CryptMsgVerifyCountersignatureEncodedEx (wincrypt.h)
La fonction CryptMsgVerifyCountersignatureEncodedEx vérifie que le paramètre pbSignerInfoCounterSignature contient le hachage chiffré du champ encryptedDigest de la structure de paramètre pbSignerInfo . Le signataire peut être une structure CERT_PUBLIC_KEY_INFO , un contexte de certificat ou un contexte de chaîne.
Syntaxe
BOOL CryptMsgVerifyCountersignatureEncodedEx(
[in, optional] HCRYPTPROV_LEGACY hCryptProv,
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] PBYTE pbSignerInfoCountersignature,
[in] DWORD cbSignerInfoCountersignature,
[in] DWORD dwSignerType,
[in] void *pvSigner,
DWORD dwFlags,
void *pvExtra
);
Paramètres
[in, optional] 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
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] dwSignerType
Structure qui contient les informations du signataire. Le tableau suivant présente les valeurs prédéfinies et les structures indiquées.
Valeur | Signification |
---|---|
|
pvSigner est un pointeur vers une structure CERT_PUBLIC_KEY_INFO . |
|
pvSigner est un pointeur vers une structure CERT_CONTEXT . |
|
pvSigner est un pointeur vers une structure CERT_CHAIN_CONTEXT . |
[in] pvSigner
Pointeur vers une structure CERT_PUBLIC_KEY_INFO , un contexte de certificat ou un contexte de chaîne en fonction de la valeur de dwSignerType.
dwFlags
Indicateurs qui modifient le comportement de la fonction. Il peut s’agir de zéro ou de la valeur suivante.
Valeur | Signification |
---|---|
|
Effectue une signature forte case activée après une vérification de signature réussie. Définissez le paramètre pvExtra pour qu’il pointe vers une structure de CERT_STRONG_SIGN_PARA qui contient les paramètres nécessaires pour case activée la force de signature..
Windows 8 et Windows Server 2012 : la prise en charge de cet indicateur commence. |
pvExtra
Si vous définissez le paramètre dwFlags sur CMSG_VERIFY_COUNTER_SIGN_ENABLE_STRONG_FLAG, définissez ce paramètre (pvExtra) pour qu’il pointe vers une structure CERT_STRONG_SIGN_PARA qui contient les paramètres utilisés pour case activée la force de signature.
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.
Les codes d’erreur suivants sont le plus souvent 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 |