Line 1,186: |
Line 1,186: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0x0 || 0x20 || | + | | 0x0 || 0x20 || [[#NetworkInfo]]+0x0 |
| |- | | |- |
− | | 0x20 || 0x1 || | + | | 0x20 || 0x1 || Must be 0x1-0xF. |
| |- | | |- |
| | 0x21 || 0x1 || | | | 0x21 || 0x1 || |
| |- | | |- |
− | | 0x22 || 0x2 || Big-endian u16 | + | | 0x22 || 0x2 || Big-endian u16 size for the data starting at +0x48, must be <=0x500, and must match {total frame size relative to +0x0 above} + 0x48. |
| |- | | |- |
− | | 0x24 || 0x4 || | + | | 0x24 || 0x4 || Big-endian u32 Counter |
| |- | | |- |
− | | 0x28 || 0x20 || | + | | 0x28 || 0x20 || SHA256 hash over the entire frame starting at +0x0, with the above size + 0x48. During hashing, this hash is cleared, with the new hash overwriting the original in memory (the original is copied to stack for comparing). |
| |- | | |- |
| | 0x48 || || | | | 0x48 || || |
| |} | | |} |
| + | |
| + | When encryption is enabled, the encrypted data is +0x28 with size {remaining frame size}. This is encrypted with AES-128-CTR. The CTR is {raw Counter above without byte-swap}, with the rest cleared to zeros. |
| | | |
| <fill this in> | | <fill this in> |