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 函数释放其内存分配。

含义
CMSG_KEY_TRANS_ENCRYPT_FREE_OBJID_FLAG
0x00000002
已更新由 KeyEncryptionAlgorithm 成员引用的 CRYPT_ALGORITHM_IDENTIFIER 结构的 pszObjId 成员。
CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG
0x00000001
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

另请参阅

对包络数据进行编码