PFND3DDDI_CRYPTOSESSIONKEYEXCHANGE回调函数 (d3dumddi.h)

CryptoSessionKeyExchange 函数协商会话密钥。

语法

PFND3DDDI_CRYPTOSESSIONKEYEXCHANGE Pfnd3dddiCryptosessionkeyexchange;

HRESULT Pfnd3dddiCryptosessionkeyexchange(
  HANDLE hDevice,
  D3DDDIARG_CRYPTOSESSIONKEYEXCHANGE *unnamedParam2
)
{...}

参数

hDevice

显示设备的句柄(图形上下文)。

unnamedParam2

pData [in, out]

指向描述用于加密的会话密钥的 D3DDDIARG_CRYPTOSESSIONKEYEXCHANGE 结构的指针。

返回值

CryptoSessionKeyExchange 返回以下值之一:

返回代码 说明
S_OK 已成功交换会话密钥。
E_OUTOFMEMORY CryptoSessionKeyExchange 无法为其分配完成所需的内存。

言论

驱动程序应仅支持每种加密类型的单个密钥交换机制。 Microsoft已标准化密钥交换类型D3DKEYEXCHANGE_RSAES_OAEP。 但是,硬件供应商可以使用专有密钥交换机制。

对于D3DKEYEXCHANGE_RSAES_OAEP,pData 成员 D3DDDIARG_CRYPTOSESSIONKEYEXCHANGE 结构指向一个缓冲区,该缓冲区包含应用程序以前使用驱动程序加密会话证书中公钥的 RSAES-OAEP 加密的会话密钥。 缓冲区的实际大小为 256 字节。 此交换与 Output Protection Manager (OPM) 密钥交换的工作原理相同,但 OPM 缓冲区包含会话密钥以外的其他数据。 用于 OPM 密钥交换的同一证书可用于D3DKEYEXCHANGE_RSAES_OAEP密钥交换。

要求

要求 价值
最低支持的客户端 从 Windows 7作系统开始,支持 CryptoSessionKeyExchange。
目标平台 桌面
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

D3DDDIARG_CRYPTOSESSIONKEYEXCHANGE