PFND3D11_1DDI_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE callback function (d3d10umddi.h)

Establishes a session key for an authenticated channel.

Syntax

PFND3D11_1DDI_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE Pfnd3d111DdiNegotiateauthenticatedchannelkeyexchange;

HRESULT Pfnd3d111DdiNegotiateauthenticatedchannelkeyexchange(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HAUTHCHANNEL hCAuthChannel,
  UINT DataSize,
  VOID *pData
)
{...}

Parameters

hDevice

A handle to the display device (graphics context).

hCAuthChannel

A handle to an authenticated channel object that was created through a call to the CreateAuthenticatedChannel(D3D11_1) function.

DataSize

The size, in bytes, of the data in the pData array.

pData

A pointer to a byte array that contains the encrypted session key.

Return value

NegotiateAuthenticatedChannelKeyExchange returns one of the following values:

Return code Description
S_OK The session key for the authenticated channel was negotiated successfully.
E_INVALIDARG Parameters were validated and determined to be incorrect.
E_OUTOFMEMORY Memory was not available to complete the operation.

Remarks

The pData parameter references a buffer that contains a session key for the authenticated channel. This key buffer must contain 256 bytes of data and must be encrypted by using the RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) algorithm with the public key from the authenticated channel certificate.

The key exchange for an authenticated channel is identical to the key exchange for the Output Protection Manager (OPM) interface. However, the OPM key buffer contains additional data besides the session key.

Note

 The same certificate can be used for the authenticated channel and OPM session key.

Requirements

Requirement Value
Minimum supported client Windows 8
Minimum supported server Windows Server 2012
Target Platform Desktop
Header d3d10umddi.h (include D3d10umddi.h)

See also

CreateAuthenticatedChannel(D3D11_1)