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

另请参阅

解码信封数据