wincrypt.h) (CMSG_KEY_AGREE_ENCRYPT_INFO 结构
CMSG_KEY_AGREE_ENCRYPT_INFO结构包含适用于信封邮件的所有密钥协议收件人的加密信息。 PFN_CMSG_EXPORT_KEY_AGREE 函数更新此结构。
语法
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;
成员
cbSize
此结构的大小(以字节为单位)。
dwRecipientIndex
一个 值,该值指定由 PFN_CMSG_EXPORT_KEY_AGREE 函数的 pContentEncryptInfo 参数指定的收件人列表中的收件人的序号。
KeyEncryptionAlgorithm
一个CRYPT_ALGORITHM_IDENTIFIER结构,指定用于加密内容加密密钥的算法。 CryptMsgOpenToEncode 函数使用 CRYPT_ALGORITHM_IDENTIFIER 结构的 pszObjId 成员来获取用于导出密钥的函数的地址。 可以使用加密 API 安装函数:下一代 (CNG) 对象标识符 (OID) 。
UserKeyingMaterial
包含发送方提供的用户密钥材料 CRYPT_DATA_BLOB 结构,以确保每次同一方生成成对密钥时生成不同的密钥。
dwOriginatorChoice
指示要使用的密钥标识符的 DWORD 。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
OriginatorCertId |
|
OriginatorPublicKeyInfo |
DUMMYUNIONNAME
DUMMYUNIONNAME.OriginatorCertId
标识消息发起者的公钥 的CERT_ID 结构。
DUMMYUNIONNAME.OriginatorPublicKeyInfo
包含消息发起者的公钥的CERT_PUBLIC_KEY_INFO结构。
cKeyAgreeKeyEncryptInfo
一个 值,该值指定 rgpKeyAgreeKeyEncryptInfo 参数中的收件人数。
rgpKeyAgreeKeyEncryptInfo
包含每个收件人的加密密钥 的CMSG_KEY_AGREE_KEY_ENCRYPT_INFO 结构的数组。
dwFlags
一个 值,该值指定哪些成员已更新,并且必须使用 CryptMsgOpenToEncode 函数释放其内存分配。
值 | 含义 |
---|---|
|
UserKeyingMaterial 成员已更新。 |
|
已更新由 KeyEncryptionAlgorithm 成员引用的 CRYPT_ALGORITHM_IDENTIFIER 结构的 pszObjId 成员。 |
|
已更新由 KeyEncryptionAlgorithm 成员引用的 CRYPT_ALGORITHM_IDENTIFIER 结构的 Parameters 成员。 |
|
已更新 OriginatorPublicKeyInfo 成员引用的 CERT_PUBLIC_KEY_INFO 结构的 Algorithm.pszObjId 成员。 |
|
已更新 OriginatorPublicKeyInfo 成员引用的 CERT_PUBLIC_KEY_INFO 结构的 PublicKey 成员。 |
|
已更新 OriginatorPublicKeyInfo 成员引用的 CERT_PUBLIC_KEY_INFO 结构的 Algorithm.Parameters 成员。 |
注解
当调用并将 dwMsgType 参数设置为 CMSG_ENVELOPED 时, CryptMsgOpenToEncode 函数将从 CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 结构初始化 CMSG_KEY_AGREE_ENCRYPT_INFO 结构。 CryptMsgOpenToEncode 函数调用 PFN_CMSG_EXPORT_KEY_AGREE 函数以更新CMSG_KEY_AGREE_ENCRYPT_INFO结构。 如果找不到回调函数, CryptMsgOpenToEncode 函数会用 CMSG_CONTENT_ENCRYPT_INFO 结构中的默认密钥信息填充此结构。
回调函数可以更新 CMSG_KEY_AGREE_ENCRYPT_INFO 结构的以下成员:
- UserKeyingMaterial
- KeyEncryptionAlgorithm.pszObjId
- KeyEncryptionAlgorithm.Parameters
- dwOriginatorChoice
- OriginatorCertId
- OriginatorPublicKeyInfo
- dwFlags
其他成员是只读的。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | wincrypt.h |