]> Kevux Git Server - fll/commitdiff
Update: Specifications for Payload and Simple Packet.
authorKevin Day <thekevinday@gmail.com>
Wed, 15 Nov 2023 00:00:37 +0000 (18:00 -0600)
committerKevin Day <thekevinday@gmail.com>
Wed, 15 Nov 2023 00:01:52 +0000 (18:01 -0600)
Add "type" as a recommended Object in the header section for the Payload.

Change the size units being used in Simple Packet.
The numbers used in some areas are completely wrong 2^4 is not 32-bits.
Instead use the word "bytes" or "bits" and update the units.
The Payload Block Structure uses "bytes" rather than bits as that is the general focus of that section.
All others use "bits".

Additional changes from previous updates in the 0.7 are added here as well (version 2023/10/04).

specifications/fss-000e.txt
specifications/fss-000f.txt

index f2734d008761c891cf9e77aecc378aa29807c4b8..c91c31041d3087c4ac1e0f6412b3120932bf147b 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0
-# version 2023/07/14
+# version 2023/11/14
 #
 # This file (assumed to be named fss-000e.txt) can be more easily read using the following iki_read commands:
 #   iki_read fss-000e.txt +Q -w -rr EOF EOF FLL FLL -WWW character "'" "'" code '"' '"' italic '"' '"'
 #
 
 Featureless Settings Specification: 000e - Payload:
-  This is a code:"FSS-0002 (Basic List)" with two required objects\:
+  This is a code:"FSS-0002 (Basic List)" with two required objects and one optional object\:
   1) italic:"header".
-  2) italic:"payload".
+  2) italic:"signature" (optional).
+  3) italic:"payload".
 
   The italic:"header"\:
   - The italic:"header"'s Content is of type code:"FSS-0001 (Extended)".
-  - The italic:"header" is recommended to have the Objects italic:"length", italic:"status", italic:"part", and italic:"total".
+  - The italic:"header" is recommended to have the Objects italic:"length", italic:"status", italic:"part", italic:"total", and italic:"type".
   - The recommended italic:"length" represents the size of the italic:"payload".
   - The recommended italic:"part" represents a single part of a set of packets for when the data being transmitted is split across multiple payloads.
-  - The recommended italic:"total" represents the total number of parts representing a complete data transmitted across multiple payloads.
   - The recommended italic:"status" represents status codes (such as success or failure) and multiple.
+  - The recommended italic:"total" represents the total number of parts representing a complete data transmitted across multiple payloads.
+  - The recommended italic:"type" represents the type of information being transmitted.
   - The Content for the recommended italic:"length" and italic:"status" are positive whole numbers (including zero) that may be in italic:"binary", italic:"octal", italic:"decimal", italic:"duodecimal", or italic:"hexidecimal" numerical format.
+  - There may be multiple italic:"header" Object and associated Content but the behavior is not defined by this standard.
+  - For guaranteed safe and compatible behavior, only a single italic:"header" Object and associated Content should be defined.
+
+  The italic:"signature"\:
+  - The italic:"signature"'s Content is of type code:"FSS-0001 (Extended)".
+  - This is an optional Object and Content set.
+  - This is intended to be used to specify signatures and checksums, such as GPG signatures or SHA256 checksums.
+  - This can be used to sign or provide checksums on italic:"header" and the italic:"payload".
+  - There may be multiple italic:"signature" Object and associated Content but the behavior is not defined by this standard.
+  - For guaranteed safe and compatible behavior, only a single italic:"signature" Object and associated Content should be defined.
 
   The italic:"payload"\:
   - The italic:"payload"'s Content may contain anything, including raw binary data.
@@ -33,13 +45,15 @@ Featureless Settings Specification: 000e - Payload:
   - Nothing in the italic:"payload" may be considered a valid list Object by the outer code:"FSS-0002 (Basic List)" and therefore escaping is unnecessary (No further processing by the outer code:"FSS-0002 (Basic List)" is allowed at this point).
   - Comments in the italic:"payload" are not considered comments and are instead considered part of the payload, as-is.
   - Essentially, the italic:"payload" should be treated as binary data embedded in a text file.
+  - There may only be a single italic:"payload" Object and associated Content.
+  - Any italic:"payload" Object and associated Content that is not the last must not have its Content data treated as binary in the same way as the last italic:"payload" Object and associated Content.
 
   The recommended italic:"length" italic:"header" Object used to designate the italic:"payload" size does not necessarily have to be defined in the italic:"header".
   That is to say, if the italic:"payload" is expected to be of some pre-defined or static length then a length does not need to be provided in the italic:"header".
 
-  The recommended italic:"status" italic:"header" Object may be a string, such as code:"F_none", or a positive whole number.
+  The recommended italic:"status" italic:"header" Object may be a string, such as code:"F_okay", or a positive whole number.
   What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent FLL:"Featureless Linux Library" status code.
-  - The FLL:"Featureless Linux Library" status code is a 16-bit digit whose first two high-order bits represent italic:"error" and italic:"warning" ( representing italic:"signal").
+  - The FLL:"Featureless Linux Library" status code is a 16-bit digit whose first two high-order bits represent italic:"error" and italic:"warning" (representing italic:"signal").
   - The FLL:"Featureless Linux Library" status code as a number is binary sensitive and may not be portable across binaries or systems.
   - For best portability, consider using status as a name string to ensure cross-system or cross-binary compatibility.
 
@@ -51,12 +65,18 @@ Featureless Settings Specification: 000e - Payload:
       status 296
       length 30
 
+    signature\:
+      header sha1 e31b562d6ceba5e59dfaefbd7a37df6a20cad970
+      header type md5 cb5e100e5a9a3e7f6d1fd97512215282
+      payload sha256 fa4e17188867095856b8c5b7ff8f79e6f96c7a36621309473d09acc3fa0fe4d9
+
     payload\:
     The program is out of memory.
 
   Outer Objects would be\:
     1) header
-    2) payload
+    2) signature
+    3) payload
 
   "header" Objects would be\:
     1.1) type
@@ -68,5 +88,15 @@ Featureless Settings Specification: 000e - Payload:
     1.2.1) 296
     1.3.1) 30
 
+  "signature" Objects would be\:
+    2.1) header
+    2.2) header
+    2.3) payload
+
+  "signature" Contents would be\:
+    2.1.1) sha1 e31b562d6ceba5e59dfaefbd7a37df6a20cad970
+    2.2.1) type md5 cb5e100e5a9a3e7f6d1fd97512215282
+    2.3.1) sha256 fa4e17188867095856b8c5b7ff8f79e6f96c7a36621309473d09acc3fa0fe4d9
+
   The payload would be\:
-    2) The program is out of memory.
+    3) The program is out of memory.
index 1f4b973b4559597665980756773b7b1e4c16e299..1451834f18f2a91a25a94f9b3de4025480c03f77 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0
-# version 2023/07/16
+# version 2023/11/14
 #
 # This file (assumed to be named fss-000f.txt) can be more easily read using the following iki_read commands:
 #   iki_read fss-000f.txt +Q -w -WWWW character "'" "'" code '"' '"' italic '"' '"' bold '"' '"'
@@ -27,8 +27,8 @@ Featureless Settings Specification: 000f - Simple Packet:
 
   Control Block Structure\:
     code:"
-    [ Endianness Bit ] [ String / Binary Bit ] [ Remaining 6 bits (unused) ]
-    [ size: 2^1      ] [ size: 2^1           ] [ size: 2^6                 ]
+    [ Endianness Bit ] [ String / Binary Bit ] [ Remaining 6 Bits (unused) ]
+    [ size: 1 bit    ] [ size: 1 bit         ] [ size: 6 bits              ]
     "
 
   The endianness bit designates whether or not the packet is in big endian or little endian format.
@@ -48,11 +48,11 @@ Featureless Settings Specification: 000f - Simple Packet:
 
   Size Block Structure\:
     code:"
-    [ Size Block ]
-    [ size: 2^4  ]
+    [ Size Block    ]
+    [ size: 32 bits ]
     "
 
-  The bold:"Size Block" is an unsigned 32-bit integer representing the size of the entire packet, including the bold:"Control Block" and bold:"Size Block".
+  The bold:"Size Block" is an unsigned 32-bit integer representing the size of the entire packet in bytes, including the bold:"Control Block" and bold:"Size Block".
   This size must exactly match the packet to be a valid packet.
   The size represents number of bytes in the file.
   The bold:"Control Block" is 1 byte long and the bold:"Size Block" is 4 bytes long, therefore the maximum available size of the entire bold:"Simple Packet" structure is code:"(2^32)-6".
@@ -61,8 +61,8 @@ Featureless Settings Specification: 000f - Simple Packet:
 
   Payload Block Structure\:
     code:"
-    [ Payload Block  ]
-    [ size: (2^32)-6 ]
+    [ Payload Block        ]
+    [ size: (2^32)-6 bytes ]
     "
 
   The bold:"Payload Block" is not defined by this standard other than that it exists and should be in code:"FSS-000e (Payload)" format.