]> Kevux Git Server - fll/commitdiff
Update: Specification FSS-000E (Payload), add "signature" Object section.
authorKevin Day <thekevinday@gmail.com>
Thu, 5 Oct 2023 03:05:18 +0000 (22:05 -0500)
committerKevin Day <thekevinday@gmail.com>
Thu, 5 Oct 2023 03:11:22 +0000 (22:11 -0500)
Provide an optional "signature" Object and associated Content rules to the specification.
This better separates defining how the "header" and "payload" can be signed or have checksums applied.
The actual rules are left rather vague and flexible for implementation specific decisions.

A suggested strategy for using the "signature" is provided within the example.

specifications/fss-000e.txt

index 7e306bceb4c46d7538100bffb360ee1b5cf35109..019c29886bf9e44d6e471c24f7562c438f98d62d 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0
-# version 2023/07/14
+# version 2023/10/04
 #
 # 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)".
@@ -23,6 +24,16 @@ Featureless Settings Specification: 000e - Payload:
   - 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 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,6 +44,8 @@ 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".
@@ -51,12 +64,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 +87,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.