From a30ac325dc647adbe674eb32cd15fff9f04d1ad0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pascal=20Eng=C3=A9libert?= <tuxmain@zettascript.org>
Date: Wed, 5 May 2021 13:54:31 +0000
Subject: [PATCH] unsigned-varint for prefix, change message type codes

---
 rfc/0017_transaction_comment_encryption.md | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/rfc/0017_transaction_comment_encryption.md b/rfc/0017_transaction_comment_encryption.md
index d57d9d9..39d4041 100644
--- a/rfc/0017_transaction_comment_encryption.md
+++ b/rfc/0017_transaction_comment_encryption.md
@@ -32,24 +32,24 @@ Encrypt bit per bit with XOR cipher.
 
 ## Serialize encrypted message with meta data
 
-| Prefix  | Message type | Message length | Nonce    | Encrypted message | Padding                    |
-|:-------:|:------------:|:--------------:|:--------:|:-----------------:|:--------------------------:|
-| 2 bytes | 1 byte       | 1 byte         | 12 bytes | Any bytes         | `Message length % 4` bytes |
+| Prefix | Message type | Message length | Nonce    | Encrypted message | Padding                          |
+|:------:|:------------:|:--------------:|:--------:|:-----------------:|:--------------------------------:|
+| 1 byte | 1 byte       | 1 byte         | 12 bytes | Any bytes         | `(1 - Message length) % 4` bytes |
 
 The padding is used so that the quantity of bytes to be serialized is always a multiple of 4. This is necessary for the encoding in base z85.
 
 ### Prefix
 
-A constant value that indicates the type of format. For the present format defined in this RFC, the prefix is `0x0100`. A possible future new format should choose a different prefix. This prefix can also be incremented for a future version of the present format.
+A constant value that indicates the type of format. For the present format defined in this RFC, the prefix is _1_ in [unsigned-varint] format, i.e. `0x01`. A possible future new format should choose a different prefix. This prefix can also be incremented for a future version of the present format. Due to [unsigned-varint], the prefix may be longer in future versions.
 
 ### Message type
 
-| Code | Significance                     |
-|:----:|:--------------------------------:|
-| 0x00 | Write by a human for a human     |
-| 0x01 | Write by a human for a machine   |
-| 0x10 | Write by a machine for a human   |
-| 0x11 | Write by a machine for a machine |
+| Code | Significance                      |
+|:----:|:---------------------------------:|
+| 0x00 | Written by a human to a human     |
+| 0x01 | Written by a human to a machine   |
+| 0x02 | Written by a machine to a human   |
+| 0x03 | Written by a machine to a machine |
 
 ## Encodinq in transaction document
 
@@ -59,4 +59,5 @@ DUBP protocol accept all [base z85] characters except `$`. We replace `$` by `_`
 
 [base z85]: https://rfc.zeromq.org/spec/32/
 [crypto_box_beforenm]: https://nacl.cr.yp.to/box.html
+[unsigned-varint]: https://github.com/multiformats/unsigned-varint
 [XOR cipher]: https://en.wikipedia.org/wiki/XOR_cipher
-- 
GitLab