CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 结构 (wincrypt.h)

CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO结构包含有关使用密钥协议密钥管理的邮件收件人的信息。此结构与 CMSG_RECIPIENT_ENCODE_INFO 结构一起使用。

语法

typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {
  DWORD                                     cbSize;
  CRYPT_ALGORITHM_IDENTIFIER                KeyEncryptionAlgorithm;
  void                                      *pvKeyEncryptionAuxInfo;
  CRYPT_ALGORITHM_IDENTIFIER                KeyWrapAlgorithm;
  void                                      *pvKeyWrapAuxInfo;
  HCRYPTPROV_LEGACY                         hCryptProv;
  DWORD                                     dwKeySpec;
  DWORD                                     dwKeyChoice;
  union {
    PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm;
    PCERT_ID                    pSenderId;
  } DUMMYUNIONNAME;
  CRYPT_DATA_BLOB                           UserKeyingMaterial;
  DWORD                                     cRecipientEncryptedKeys;
  PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO *rgpRecipientEncryptedKeys;
} CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;

成员

cbSize

此结构的大小(以字节为单位)。

KeyEncryptionAlgorithm

指定用于加密的算法 的CRYPT_ALGORITHM_IDENTIFIER 结构。

对于 ECC 收件人,应将 CRYPT_ALGORITHM_IDENTIFIER 结构的 pszObjId 成员设置为 szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF,并将此 CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 结构的 dwKeyChoice 成员设置为 CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE。

pvKeyEncryptionAuxInfo

当前未使用此成员。 它必须设置为 NULL

KeyWrapAlgorithm

一个 CRYPT_ALGORITHM_IDENTIFIER 结构,指定用于密钥包装的算法。

pvKeyWrapAuxInfo

指向 CMSG_RC2_AUX_INFO 结构的指针,该结构指定密钥包装位长度。 仅当 KeyWrapAlgorithm 成员指定 RC2 算法时,才使用此成员。 如果 KeyWrapAlgorithm 指定 RC2 算法以外的算法,则不会使用此成员,并且必须为 NULL

hCryptProv

此成员未使用,应设置为 NULL

Windows Server 2003 和 Windows XP: 加密 服务提供程序 的句柄 (CSP) 使用 CryptAcquireContext 函数获取。 此成员是可选的,可以为 NULL。此成员的数据类型为 HCRYPTPROV

dwKeySpec

当前未使用此成员。

dwKeyChoice

指示密钥协议的类型。 此成员可以是以下值之一。

含义
CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE
创建临时 公钥/私钥对 来加密内容加密密钥。
CMSG_KEY_AGREE_STATIC_KEY_CHOICE
目前不会使用此值。

DUMMYUNIONNAME

DUMMYUNIONNAME.pEphemeralAlgorithm

指向包含临时公钥算法和参数 的CRYPT_ALGORITHM_IDENTIFIER 结构的指针。 当 dwKeyChoice 成员包含 CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE时使用此成员。

DUMMYUNIONNAME.pSenderId

指向 CERT_ID 结构的指针。 当 dwKeyChoice 成员包含 CMSG_KEY_AGREE_STATIC_KEY_CHOICE时使用此成员。 当前未使用此成员。

UserKeyingMaterial

包含用户密钥材料 ( UKM) 发送方提供的CRYPT_DATA_BLOB结构,以确保每次同一方生成成对密钥时生成不同的密钥。 此成员是可选的,如果未使用,则应将所有成员设置为零。

cRecipientEncryptedKeys

rgpRecipientEncryptedKeys 数组中的元素数。

rgpRecipientEncryptedKeys

一个CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO结构的数组,每个接收者一个接收此密钥协议密钥。 cRecipientEncryptedKeys 成员包含此结构中的元素数。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 wincrypt.h

另请参阅

CERT_ID

CMSG_RC2_AUX_INFO

CMSG_RECIPIENT_ENCODE_INFO

CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

CRYPT_ALGORITHM_IDENTIFIER

CRYPT_DATA_BLOB

CryptAcquireContext