2.2.52 DPSP_MSG_SIGNED

The DPSP_MSG_SIGNED packet is used to send a signed message along with its signature.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

DPSP_MSG_HEADER (28 bytes)

...

...

IDFrom

DataOffset

DataSize

SignatureSize

Flags

Message (variable)

...

Signature (variable)

...

DPSP_MSG_HEADER (28 bytes): Message header for this packet. The Command Value member of this field MUST be set to 34 (0x22).

IDFrom (4 bytes): MUST be set to the system player ID of the sender.

DataOffset (4 bytes): MUST be set to the offset, in octets, of the DirectPlay message.

DataSize (4 bytes): MUST be set to the size of the Message field, in octets.

SignatureSize (4 bytes): MUST be set to the size of the signature, in octets.

Flags (4 bytes): Flag values. MUST be set to one or more of the following:


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

SS

SC

EC

X

SS (1 bit): If set, the message was signed by the Security Support Provider Interface (SSPI) specified when the game session was established.

SC (1 bit): If set, the message was signed by the cryptographic algorithm specified when the game session was established.

EC (1 bit): Message was encrypted by Crypto API.

X (29 bits): All bits with this label SHOULD be set to zero when sent and MUST be ignored on receipt.

Message (variable): Array of bytes that contains the DirectPlay message. The Message field can contain any DirectPlay 4 Protocol message. However, the message MUST begin with the Signature field of the DPSP_MSG_HEADER (section 2.2.6) rather than the entire DPSP_MSG_HEADER structure. Once authentication is negotiated, DirectPlay sends all messages in as signed, except the following:

Signature (variable): Array of bytes that contains the message signature.