]> git.r.bdr.sh - rbdr/tiny-command-pal/blobdiff - README.md
Constraint max payload length to 3 bytes
[rbdr/tiny-command-pal] / README.md
index f6e8a1162c8a80e7825e13c4a6d46519ea3c36a0..e77af84d2af38ac54fbfb5854dc322fd67d25711 100644 (file)
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@ This command is used to confirm whether the current host is authorized to send t
 ```
 ## 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)
@@ -51,7 +51,19 @@ This command is used to confirm whether the current host is authorized to send t
 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)
@@ -69,9 +81,22 @@ This signature should be used to confirm whether the client is talking to the ri
 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
@@ -85,11 +110,11 @@ The codes are as follows:
 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
@@ -97,7 +122,7 @@ This is an actual command.
 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
@@ -105,6 +130,18 @@ This is an actual command.
 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.
@@ -114,7 +151,7 @@ If authorization is anything other than 0x00, then exit status will always be 0x
 ```
 ## 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
@@ -122,7 +159,20 @@ If authorization is anything other than 0x00, then exit status will always be 0x
 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.