PFN_CMSG_CNG_IMPORT_KEY_AGREE回调函数 (wincrypt.h)
PFN_CMSG_CNG_IMPORT_KEY_AGREE回调函数 (适用于密钥协议接收者的 CEK) 解密内容加密密钥。 可以使用加密 API 安装PFN_CMSG_CNG_IMPORT_KEY_AGREE:下一代 (CNG) 对象标识符 (OID) 。
语法
PFN_CMSG_CNG_IMPORT_KEY_AGREE PfnCmsgCngImportKeyAgree;
BOOL PfnCmsgCngImportKeyAgree(
[in, out] PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo,
[in] PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara,
[in] DWORD dwFlags,
void *pvReserved
)
{...}
参数
[in, out] pCNGContentDecryptInfo
指向要用解密的 CEK 字节更新 的 CMSG_CNG_CONTENT_DECRYPT_INFO 结构的指针。 此参数包含用于解密 CEK 的密钥。 以下 pKeyTransDecryptPara 参数包含要解密的 CEK 字节。
[in] pKeyAgreeDecryptPara
指向 CMSG_CTRL_KEY_AGREE_DECRYPT_PARA 结构的指针,该结构包含传递给 CMSG_CTRL_KEY_AGREE_DECRYPT 情况下的 CryptMsgControl 函数的关键协议信息。
pKeyAgree 成员的 EncryptedKey 成员包含要解密的 CEK 字节。 由于 CMSG_CTRL_KEY_AGREE_DECRYPT_PARA 结构可能包含 HCRYPTPROV 选项,因此其 hNCryptKey 成员不得用于解密 EncryptedKey。 相反,必须使用 pCNGContentDecryptInfo 参数中指定的 hNCryptKey 成员。
此函数不得更新 CMSG_CTRL_KEY_AGREE_DECRYPT_PARA 结构的成员。
[in] dwFlags
此参数为保留参数。 将其设置为零。
pvReserved
此参数为保留参数。 将其设置为 NULL。
返回值
如果函数成功,则返回值为非零 (TRUE) 。
如果函数失败,则返回值为零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError。
如果此回调函数不支持密钥加密算法,则必须返回 FALSE 并使用 ERROR_NOT_SUPPORTED调用 SetLastError 。
注解
CryptMsgControl 函数为 dwCtrlType 参数指定的以下操作调用此函数:
CMSG_CTRL_KEY_AGREE_DECRYPT 可以使用 OID 支持函数 部署此回调函数。 Wincrypt.h 为此定义以下常量。
常数 | 定义 |
---|---|
CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC | “CryptMsgDllCNGImportKeyAgree” |
示例
有关部署 OID 可安装的回调函数的示例,请参阅 扩展 CryptoAPI 功能。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |