```
## Header, 4 bytes
1. Magic Byte (0x7C), 1 byte
-2. Command Message Flag (0x01), 1 byte
+2. Authorization Check Message Flag (0x00), 1 byte
3. Length of command in bytes (0x00-0xFF), 1 byte
4. Start of Text Byte (0x02), 1 byte
## The Command (Variable)
3. The signature of the command, signed by a private ed25519 key, 64 bytes
4. End of Text Byte (0x03), 1 byte
## Footer, 1 byte
-2. End of Transmission Byte (0x04), 1 byte
+1. End of Transmission Byte (0x04), 1 byte
+```
+
+```
+All numbers in hexadecimal.
+┌───────────────────┬──────────────────────────────────┬────┐
+│ HEADER │ BODY │FOOT│
+├────┬────┬────┬────┼────┬─────────┬────┬────┬────┬────┼────┤
+│ 00 │ 01 │ 02 │ 03 │ 04 ┊ A+CLEN │B+01│B+02┊B+41│B+42│B+43│
+├────┼────┼────┼────┼────┴─────────┼────┼────┴────┼────┼────┤
+│ 7C │ 00 │CLEN│ 02 │ COMMAND │ 1F │SIGNATURE│ 03 │ 04 │
+└────┴────┴────┴────┼──────────────┼────┴─────────┴────┴────┘
+ A B
```
### The Authorization Response Message (0x80)
1. Authorization Response Code (0x00-0xFF), 1 byte
2. Record Separator Byte (0x1E), 1 byte
3. The signature of the command, signed by the server's private ed25519 key, 64 bytes
+4. End of Text Byte (0x03), 1 byte
+## Footer, 1 byte
4. End of Transmission Byte (0x04), 1 byte
```
+```
+All numbers in hexadecimal.
+┌──────────────┬────────────────────────┬────┐
+│ HEADER │ BODY │FOOT│
+├────┬────┬────┼────┬────┬────┬────┬────┼────┤
+│ 00 │ 01 │ 02 │ 03 ┊ 04 │ 05 ┊ 44 │ 45 ┊ 41 │
+├────┼────┼────┼────┼────┼────┴────┼────┼────┤
+│ 7C │ 80 │ 02 │AUTH│ 1E │SIGNATURE│ 03 │ 04 │
+└────┴────┴────┴────┴────┴─────────┴────┴────┘
+```
+
The codes are as follows:
- 00 Authorized
This is an actual command.
```
-## Header, 8 bytes
+## Header, 7 bytes
1. Magic Byte (0x7C), 1 byte
2. Command Message Flag (0x01), 1 byte
3. Length of command in bytes (0x00-0xFF), 1 byte
-4. Length of payload (0x00000000-0xFFFFFFFF), 4 bytes
+4. Length of payload (0x000000-0xFFFFFF), 3 bytes
5. Start of Text Byte (0x02), 1 byte
## The Command (Variable)
1. The command, Up to 255 bytes in length, must correspond to the value in header field 3
3. The signature of the command, signed by a private ed25519 key, 64 bytes
4. Record Separator Byte (0x1E), 1 byte
## The Payload (Variable)
-1. The payload, up to 4,294,967,295 bytes in length, must correspond to the value in header field 4. Encoding will be assumed to be Mac OS Roman.
+1. The payload, up to 16,777,215 bytes in length, must correspond to the value in header field 4.
2. Unit Separator Byte (0x1F)
3. The signature of the payload, signed by the same private ed25519 key as the command, 64 bytes
4. End of Text Byte (0x03), 1 byte
2. End of Transmission Byte (0x04), 1 byte
```
+```
+All numbers in hexadecimal.
+┌─────────────────────────────┬─────────────────────────────────────────────────────────────────────┬────┐
+│ HEADER │ BODY BODY │FOOT│
+├────┬────┬────┬────┬────┬────┼────┬─────────┬────┬────┬────┬────┬────┬─────────┬────┬────┬────┬────┼────┤
+│ 00 │ 01 │ 02 │ 03 ┊ 05 │ 06 │ 07 ┊ A+CLEN │B+01│B+02┊B+41│B+42│B+43┊B+42+PLEN│C+01│C+02┊C+41│C+42│C+43│
+├────┼────┼────┼────┴────┼────┼────┴─────────┼────┼────┴────┼────┼────┴─────────┼────┼────┴────┼────┼────┤
+│ 7C │ 01 │CLEN│ PLEN │ 02 │ COMMAND │ 1F │SIGNATURE│ 1E │ PAYLOAD │ 1F │SIGNATURE│ 03 │ 04 │
+└────┴────┴────┴─────────┴────┼──────────────┼────┴─────────┴────┴──────────────┼────┴─────────┴────┴────┘
+ A B C
+```
+
### The Command Result Message (0x81)
Sent as a response to an 0x01 command, it includes the authorization code, the exit status of the command, and the signature of the command sent.
```
## Header, 3 bytes
1. Magic Byte (0x7C), 1 byte
-2. Authorization Response Message Flag (0x80), 1 byte
+2. Command Result Message Flag (0x81), 1 byte
3. Start of Text Byte (0x02), 1 byte
## Body, 69 Bytes
1. Authorization Response Code (0x00-0xFF), 1 byte
3. Command Exit Status Code (0x00-0xFF), 1 byte
4. Record Separator Byte (0x1E), 1 byte
5. The signature of the command, signed by the server's private ed25519 key, 64 bytes
-6. End of Transmission Byte (0x04), 1 byte
+6. End of Text Byte (0x03), 1 byte
+## Footer, 1 byte
+1. End of Transmission Byte (0x04), 1 byte
+```
+
+```
+All numbers in hexadecimal.
+┌──────────────┬──────────────────────────────────┬────┐
+│ HEADER │ BODY │FOOT│
+├────┬────┬────┼────┬────┬────┬────┬────┬────┬────┼────┤
+│ 00 │ 01 │ 02 │ 03 ┊ 04 │ 05 ┊ 06 │ 07 ┊ 46 │ 47 ┊ 48 │
+├────┼────┼────┼────┼────┼────┼────┼────┴────┼────┼────┤
+│ 7C │ 81 │ 02 │AUTH│ 1E │CODE│ 1E │SIGNATURE│ 03 │ 04 │
+└────┴────┴────┴────┴────┴────┴────┴─────────┴────┴────┘
```
The authorization codes are the same as for the authorization response message.