structure CMSG_KEY_AGREE_ENCRYPT_INFO (wincrypt.h)
La structure CMSG_KEY_AGREE_ENCRYPT_INFO contient des informations de chiffrement applicables à tous les destinataires clés d’un message enveloppe. La fonction PFN_CMSG_EXPORT_KEY_AGREE met à jour cette structure.
Syntaxe
typedef struct _CMSG_KEY_AGREE_ENCRYPT_INFO {
DWORD cbSize;
DWORD dwRecipientIndex;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
CRYPT_DATA_BLOB UserKeyingMaterial;
DWORD dwOriginatorChoice;
union {
CERT_ID OriginatorCertId;
CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo;
} DUMMYUNIONNAME;
DWORD cKeyAgreeKeyEncryptInfo;
PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO *rgpKeyAgreeKeyEncryptInfo;
DWORD dwFlags;
} CMSG_KEY_AGREE_ENCRYPT_INFO, *PCMSG_KEY_AGREE_ENCRYPT_INFO;
Membres
cbSize
Taille, en octets, de cette structure.
dwRecipientIndex
Valeur qui spécifie le numéro ordinal d’un destinataire dans la liste de destinataires spécifiée par le paramètre pContentEncryptInfo de la fonction PFN_CMSG_EXPORT_KEY_AGREE .
KeyEncryptionAlgorithm
Une structure CRYPT_ALGORITHM_IDENTIFIER qui spécifie l’algorithme utilisé pour chiffrer la clé de chiffrement de contenu. La fonction CryptMsgOpenToEncode utilise le membre pszObjId de la structure CRYPT_ALGORITHM_IDENTIFIER pour obtenir l’adresse de la fonction utilisée pour exporter la clé. La fonction peut être installée à l’aide d’une API de chiffrement : identificateur d’objet CNG (OID).
UserKeyingMaterial
Une structure de CRYPT_DATA_BLOB qui contient le matériel de clé utilisateur fourni par l’expéditeur pour garantir qu’une clé différente est générée chaque fois que les deux mêmes parties génèrent une clé par paire.
dwOriginatorChoice
DWORD qui indique l’identificateur de clé à utiliser. Ce membre peut être l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
OriginatorCertId |
|
OriginatorPublicKeyInfo |
DUMMYUNIONNAME
DUMMYUNIONNAME.OriginatorCertId
Une structure CERT_ID qui identifie la clé publique de l’initiateur de message.
DUMMYUNIONNAME.OriginatorPublicKeyInfo
Une structure CERT_PUBLIC_KEY_INFO qui contient la clé publique de l’expéditeur de message.
cKeyAgreeKeyEncryptInfo
Valeur qui spécifie le nombre de destinataires dans le paramètre rgpKeyAgreeKeyEncryptInfo .
rgpKeyAgreeKeyEncryptInfo
Tableau de structures CMSG_KEY_AGREE_KEY_ENCRYPT_INFO qui contiennent la clé chiffrée pour chaque destinataire.
dwFlags
Valeur qui spécifie les membres qui ont été mis à jour et dont l’allocation de mémoire doit être libérée à l’aide de la fonction CryptMsgOpenToEncode .
Valeur | Signification |
---|---|
|
Le membre UserKeyingMaterial a été mis à jour. |
|
Le membre pszObjId de la structure CRYPT_ALGORITHM_IDENTIFIER auquel fait référence le membre KeyEncryptionAlgorithm a été mis à jour. |
|
Le membre Parameters de la structure CRYPT_ALGORITHM_IDENTIFIER auquel fait référence le membre KeyEncryptionAlgorithm a été mis à jour. |
|
Le membre Algorithm.pszObjId de la structure CERT_PUBLIC_KEY_INFO auquel fait référence le membre OriginatorPublicKeyInfo a été mis à jour. |
|
Le membre PublicKey de la structure CERT_PUBLIC_KEY_INFO auquel fait référence le membre OriginatorPublicKeyInfo a été mis à jour. |
|
Le membre Algorithm.Parameters de la structure CERT_PUBLIC_KEY_INFO auquel fait référence le membre OriginatorPublicKeyInfo a été mis à jour. |
Remarques
Lorsqu’elle est appelée avec le paramètre dwMsgType défini sur CMSG_ENVELOPED, la fonction CryptMsgOpenToEncode initialise la structure CMSG_KEY_AGREE_ENCRYPT_INFO à partir de la structure CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO . La fonction CryptMsgOpenToEncode appelle la fonction PFN_CMSG_EXPORT_KEY_AGREE pour mettre à jour la structure CMSG_KEY_AGREE_ENCRYPT_INFO . Si la fonction de rappel est introuvable, la fonction CryptMsgOpenToEncode remplit cette structure avec les informations de clé par défaut de la structure CMSG_CONTENT_ENCRYPT_INFO .
Les membres suivants de la structure CMSG_KEY_AGREE_ENCRYPT_INFO peuvent être mis à jour par la fonction de rappel :
- UserKeyingMaterial
- KeyEncryptionAlgorithm.pszObjId
- KeyEncryptionAlgorithm.Parameters
- dwOriginatorChoice
- OriginatorCertId
- OriginatorPublicKeyInfo
- dwFlags
Les autres membres sont en lecture seule.
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] |
En-tête | wincrypt.h |