citra-emu
/
citra-canary
Archived
1
0
Fork 0

UDS: Clarify comment about the first 4 bytes of the SecureData header.

It is likely that these 4 bytes are actually a different header, part of some protocol that encapsulates the SecureData protocol.
This commit is contained in:
Subv 2017-06-14 09:43:05 -05:00
parent 61ce89a55a
commit 812b404492
2 changed files with 5 additions and 1 deletions

View File

@ -40,7 +40,9 @@ static std::vector<u8> GenerateSecureDataHeader(u16 data_size, u8 channel, u16 d
u16 src_node_id, u16 sequence_number) { u16 src_node_id, u16 sequence_number) {
SecureDataHeader header{}; SecureDataHeader header{};
header.protocol_size = data_size + sizeof(SecureDataHeader); header.protocol_size = data_size + sizeof(SecureDataHeader);
// TODO(Subv): It is likely that the first 4 bytes of this header are actually a decorator for another protocol. // Note: This size includes everything except the first 4 bytes of the structure,
// reinforcing the hypotheses that the first 4 bytes are actually the header of
// another container protocol.
header.securedata_size = data_size + sizeof(SecureDataHeader) - 4; header.securedata_size = data_size + sizeof(SecureDataHeader) - 4;
header.is_management = 0; // Frames sent by the emulated application are never UDS management frames header.is_management = 0; // Frames sent by the emulated application are never UDS management frames
header.data_channel = channel; header.data_channel = channel;

View File

@ -45,6 +45,8 @@ static_assert(sizeof(LLCHeader) == 8, "LLCHeader has the wrong size");
* the source and destination network node ids. * the source and destination network node ids.
*/ */
struct SecureDataHeader { struct SecureDataHeader {
// TODO(Subv): It is likely that the first 4 bytes of this header are
// actually part of another container protocol.
u16_be protocol_size; u16_be protocol_size;
INSERT_PADDING_BYTES(2); INSERT_PADDING_BYTES(2);
u16_be securedata_size; u16_be securedata_size;