Fonction CryptMsgEncodeAndSignCTL (wincrypt.h)
La fonction CryptMsgEncodeAndSignCTL encode une CTL et crée un message signé contenant la CTL encodée.
Cette fonction encode d’abord la CTL pointée par pCtlInfo , puis appelle CryptMsgSignCTL pour signer le message encodé.
Syntaxe
BOOL CryptMsgEncodeAndSignCTL(
[in] DWORD dwMsgEncodingType,
[in] PCTL_INFO pCtlInfo,
[in] PCMSG_SIGNED_ENCODE_INFO pSignInfo,
[in] DWORD dwFlags,
[out] BYTE *pbEncoded,
[in, out] DWORD *pcbEncoded
);
Paramètres
[in] dwMsgEncodingType
Spécifie le type d’encodage utilisé. Il est toujours acceptable de spécifier les types d’encodage de certificat et de message en les combinant avec une opération OR au niveau du bit, comme illustré dans l’exemple suivant :
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
Les types d’encodage actuellement définis sont les suivants :
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pCtlInfo
Pointeur vers la structure CTL_INFO contenant la CTL à encoder et à signer.
[in] pSignInfo
Pointeur vers une structure CMSG_SIGNED_ENCODE_INFO qui contient un tableau d’une CMSG_SIGNER_ENCODE_INFO structures.
Le message peut être encodé sans signataires si le membre cbSize de la structure est défini sur la taille de la structure et que tous les autres membres sont définis sur zéro.
[in] dwFlags
CMSG_ENCODE_SORTED_CTL_FLAG est défini si les entrées CTL doivent être triées avant l’encodage. Cet indicateur est défini si les fonctions CertFindSubjectInSortedCTL ou CertEnumSubjectInSortedCTL sont appelées.
CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG est défini si CMSG_ENCODE_SORTED_CTL_FLAG est défini et si l’identificateur des valeurs de confiance est un hachage, tel que MD5 ou SHA1.
Si CMS_PKCS7 est défini, dwFlags peut être défini sur CMSG_CMS_ENCAPSULATED_CTL_FLAG pour encoder un message Signé V3 compatible CMS.
[out] pbEncoded
Pointeur vers une mémoire tampon qui reçoit le message signé encodé créé.
Ce paramètre peut avoir la valeur NULL pour définir la taille de ces informations à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.
[in, out] pcbEncoded
Pointeur vers un DWORD qui spécifie la taille, en octets, de la mémoire tampon pbEncoded . Lorsque la fonction retourne, le DWORD contient le nombre d’octets stockés ou à stocker dans la mémoire tampon.
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étaillées sur l’erreur, appelez GetLastError. Les erreurs peuvent être propagées à partir d’appels vers CryptMsgOpenToEncode et CryptMsgUpdate.
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 | wincrypt.h |
Bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |
Voir aussi
Fonctions de vérification à l’aide de listes de contrôle cloud