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) |