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
CMSG_KEY_AGREE_ORIGINATOR_CERT
OriginatorCertId
CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY
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
CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG
0x00000002
Le membre UserKeyingMaterial a été mis à jour.
CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG
0x00000020
Le membre pszObjId de la structure CRYPT_ALGORITHM_IDENTIFIER auquel fait référence le membre KeyEncryptionAlgorithm a été mis à jour.
CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG
0x00000001
Le membre Parameters de la structure CRYPT_ALGORITHM_IDENTIFIER auquel fait référence le membre KeyEncryptionAlgorithm a été mis à jour.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG
0x00000004
Le membre Algorithm.pszObjId de la structure CERT_PUBLIC_KEY_INFO auquel fait référence le membre OriginatorPublicKeyInfo a été mis à jour.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG
0x00000010
Le membre PublicKey de la structure CERT_PUBLIC_KEY_INFO auquel fait référence le membre OriginatorPublicKeyInfo a été mis à jour.
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG
0x00000008
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