2.2.52 DPSP_MSG_SIGNED
The DPSP_MSG_SIGNED packet is used to send a signed message along with its signature.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1SS
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:
The DPSP_MSG_ADDFORWARDREQUEST (section 2.2.11) and DPSP_MSG_SESSIONDESCCHANGED (section 2.2.51) messages are sent signed and encrypted.
The higher layer determines whether the DPSP_MSG_PLAYERMESSAGE (section 2.2.45) or DPSP_MSG_ASK4MULTICASTGUARANTEED (section 2.2.15) message SHOULD be sent signed and/or encrypted.
The DPSP_MSG_PING (section 2.2.42) and DPSP_MSG_PINGREPLY (section 2.2.43) messages are not signed or encrypted.
Signature (variable): Array of bytes that contains the message signature.