structure CMSG_ENVELOPED_ENCODE_INFO (wincrypt.h)
La structure CMSG_ENVELOPED_ENCODE_INFO contient les informations nécessaires à l’encodage d’un message enveloppe. Il est passé à CryptMsgOpenToEncode si le paramètre dwMsgType est CMSG_ENVELOPED.
Syntaxe
typedef struct _CMSG_ENVELOPED_ENCODE_INFO {
DWORD cbSize;
HCRYPTPROV_LEGACY hCryptProv;
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm;
void *pvEncryptionAuxInfo;
DWORD cRecipients;
PCERT_INFO *rgpRecipients;
PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients;
DWORD cCertEncoded;
PCERT_BLOB rgCertEncoded;
DWORD cCrlEncoded;
PCRL_BLOB rgCrlEncoded;
DWORD cAttrCertEncoded;
PCERT_BLOB rgAttrCertEncoded;
DWORD cUnprotectedAttr;
PCRYPT_ATTRIBUTE rgUnprotectedAttr;
} CMSG_ENVELOPED_ENCODE_INFO, *PCMSG_ENVELOPED_ENCODE_INFO;
Membres
cbSize
Taille, en octets, de cette structure.
hCryptProv
Ce membre n’est pas utilisé et doit être défini sur NULL.
Windows Server 2003 et Windows XP : Spécifie un handle pour le fournisseur de services de chiffrement (CSP) utilisé pour effectuer le chiffrement du contenu, le chiffrement de la clé de destinataire et l’exportation. Les clés privées du hCryptProv ne sont pas utilisées.
Le type de données de ce membre est HCRYPTPROV.
Sauf s’il existe une raison forte de transmettre un fournisseur de chiffrement spécifique dans hCryptProv, passez zéro pour utiliser le fournisseur RSA ou DSS par défaut.
ContentEncryptionAlgorithm
Une structure CRYPT_ALGORITHM_IDENTIFIER qui contient le type d’algorithme de signature et tous les paramètres supplémentaires associés sous forme encodée.
Le membre pszObjId de la structure spécifie l’algorithme utilisé pour chiffrer le contenu du message.
Les algorithmes de chiffrement suivants nécessitent un vecteur d’initialisation de huit octets encodé dans le membre Parameters de la structure. Pour plus d’informations, consultez CryptSetKeyParam.
Valeur | Signification |
---|---|
|
szOID_OIWSEC_desCBC |
|
szOID_RSA_DES_EDE3_CBC |
Si le membre cbData du membre Parameters est égal à zéro , une chaîne OCTET codée ASN.1 contenant l’IV est générée à l’aide de CryptGenRandom.
L’algorithme de szOID_RSA_RC2CBC (CALG_RC2) nécessite que le membre pbData de Parameters soit une structure de CRYPT_RC2_CBC_PARAMETERS encodée. Si le membre cbData du membre Parameters est égal à zéro, une CRYPT_RC2_CBC_PARAMETERS encodée ASN.1 est générée avec une valeur par défaut de 40 pour le membre dwVersion . Cela définit la longueur de la clé par défaut sur 40 bits. Cette longueur de clé par défaut peut être remplacée par pvEncryptionAuxInfo pointant vers une structure CMSG_RC2_AUX_INFO contenant la longueur de clé souhaitée.
pvEncryptionAuxInfo
Pointeur vers une structure en fonction de l’algorithme de chiffrement.
Valeur | Signification |
---|---|
|
|
|
|
|
|
|
NULL |
cRecipients
Nombre d’éléments dans le tableau rgpRecipients ou rgCmsRecipients .
rgpRecipients
Tableau de pointeurs vers CERT_INFO structures, chacun contenant l’émetteur du certificat d’un destinataire, SerialNumber et SubjectPublicKeyInfo. Ce tableau ne peut être utilisé que pour les destinataires identifiés par leur émetteur et leur numéro de série. Si rgpRecipients n’a pas la valeur NULL, rgCmsRecipients doit avoir la valeur NULL.
rgCmsRecipients
facultatif. Tableau de pointeurs vers CMSG_RECIPIENT_ENCODE_INFO structures contenant des informations de destinataire. Si rgCmsRecipients n’a pas la valeur NULL, rgpRecipients doit avoir la valeur NULL. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
cCertEncoded
facultatif. Valeur DWORD qui indique le nombre de certificats encodés dans le tableau rgCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
rgCertEncoded
facultatif. Tableau de structures CERT_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
cCrlEncoded
facultatif. Valeur DWORD qui indique le nombre de listes de révocation de certificats encodées (CRL) dans le tableau rgCRLEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
rgCrlEncoded
facultatif. Tableau de structures CRL_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
cAttrCertEncoded
facultatif. Valeur DWORD qui indique le nombre d’attributs de certificat encodés dans le tableau rgAttrCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
rgAttrCertEncoded
facultatif. Tableau de structures CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce membre.
cUnprotectedAttr
facultatif. Valeur DWORD qui indique le nombre d’attributs non protégés dans le tableau rgUnprotectedAttr . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
rgUnprotectedAttr
facultatif. Tableau de structures CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS doit être défini pour référencer ce champ.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
En-tête | wincrypt.h |