CMSG_KEY_TRANS_ENCRYPT_INFO 结构 (wincrypt.h)
CMSG_KEY_TRANS_ENCRYPT_INFO结构包含信封数据的密钥传输接收方的加密信息。 PFN_CMSG_EXPORT_KEY_TRANS 函数更新此结构。
语法
typedef struct _CMSG_KEY_TRANS_ENCRYPT_INFO {
DWORD cbSize;
DWORD dwRecipientIndex;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
CRYPT_DATA_BLOB EncryptedKey;
DWORD dwFlags;
} CMSG_KEY_TRANS_ENCRYPT_INFO, *PCMSG_KEY_TRANS_ENCRYPT_INFO;
成员
cbSize
此结构的大小(以字节为单位)。
dwRecipientIndex
一个 值,该值指定由 PFN_CMSG_EXPORT_KEY_TRANS 函数的 pContentEncryptInfo 参数指定的收件人列表中的收件人的序号。
KeyEncryptionAlgorithm
指定接收方公钥算法的 CRYPT_ALGORITHM_IDENTIFIER 结构。 CryptMsgOpenToEncode 函数使用 CRYPT_ALGORITHM_IDENTIFIER 结构的 pszObjId 成员来获取用于导出密钥的函数的地址。 可以使用加密 API 安装函数:下一代 (CNG) 对象标识符 (OID) 。
EncryptedKey
包含由收件人公钥加密的会话密钥的 CRYPT_DATA_BLOB 结构。
dwFlags
一个 值,该值指定哪些成员已更新,并且必须使用 CryptMsgOpenToEncode 函数释放其内存分配。
值 | 含义 |
---|---|
|
已更新由 KeyEncryptionAlgorithm 成员引用的 CRYPT_ALGORITHM_IDENTIFIER 结构的 pszObjId 成员。 |
|
KeyEncryptionAlgorithm 成员引用的 CRYPT_ALGORITHM_IDENTIFIER 结构的参数 pbData 成员已更新。 |
注解
在将 dwMsgType 参数设置为 CMSG_ENVELOPED 的情况下调用时, CryptMsgOpenToEncode 函数从 CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO 结构初始化 CMSG_KEY_TRANS_ENCRYPT_INFO 结构。 CryptMsgOpenToEncode 函数调用 PFN_CMSG_EXPORT_KEY_TRANS 函数来更新CMSG_KEY_TRANS_ENCRYPT_INFO结构。 如果找不到回调函数, CryptMsgOpenToEncode 函数会用 CMSG_CONTENT_ENCRYPT_INFO 结构中的默认密钥信息填充此结构。
回调函数可以更新 CMSG_KEY_TRANS_ENCRYPT_INFO 结构的以下成员:
- EncryptedKey
- KeyEncryptionAlgorithm.pszObjId
- KeyEncryptionAlgorithm.Parameters
- dwFlags
其他成员是只读的。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | wincrypt.h |