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

CMSG_SIGNED_ENCODE_INFO

CTL_INFO

CertEnumsubjectInSortedCTL

CertFindSubjectInSortedCTL

CryptMsgOpenToEncode

CryptMsgSignCTL

Fonctions de vérification à l’aide de listes de contrôle cloud