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,D3DDDIARG_CRYPTOSESSIONKEYEXCHANGE 结构的 pData 成员指向一个缓冲区,该缓冲区包含应用程序以前使用驱动程序加密会话证书中的公钥进行 RSAES-OAEP 加密的会话密钥。 缓冲区的实际大小为 256 字节。 此交换与 输出保护管理器 (OPM) 密钥交换的工作方式相同,只不过 OPM 缓冲区包含会话密钥以外的其他数据。 用于 OPM 密钥交换的同一证书可用于D3DKEYEXCHANGE_RSAES_OAEP密钥交换。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 7 操作系统开始支持 CryptoSessionKeyExchange。 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3dumddi.h) |