commit c89072283852de70927170f8606e00a9e610ab57
parent 6fe2d80590676a65636945d7fd5dea9f3ce27e6b
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Wed, 12 Jan 2022 23:34:53 +0100
hello signature
Diffstat:
1 file changed, 92 insertions(+), 20 deletions(-)
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
@@ -1300,26 +1300,26 @@ Connectivity | |Underlay| |Underlay|
<figure anchor="figure_hello">
<artwork name="" type="" align="left" alt=""><![CDATA[
0 8 16 24 32 40 48 56
-+---+-----+-----+-----+-----+-----+-----+-----+
-| PEER-ID |
-| (32 byte) |
-| |
-| |
-+---+-----+-----+-----+-----+-----+-----+-----+
-| SIGNATURE |
-| (64 byte) |
-| |
-| |
-| |
-| |
-| |
-| |
-+---+-----+-----+-----+-----+-----+-----+-----+
-| EXPIRATION |
-+---+-----+-----+-----+-----+-----+-----+-----+
-/ ADDRESSES /
-/ (variable length) /
-+---+-----+-----+-----+-----+-----+-----+-----+
++-----+-----+-----+-----+-----+-----+-----+-----+
+| PEER-ID |
+| (32 byte) |
+| |
+| |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| SIGNATURE |
+| (64 byte) |
+| |
+| |
+| |
+| |
+| |
+| |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| EXPIRATION |
++-----+-----+-----+-----+-----+-----+-----+-----+
+/ ADDRESSES /
+/ (variable length) /
++-----+-----+-----+-----+-----+-----+-----+-----+
]]></artwork>
</figure>
<dl>
@@ -1327,6 +1327,16 @@ Connectivity | |Underlay| |Underlay|
<dd>
is the Peer-ID of the node which has generated this HELLO.
</dd>
+ <dt>SIGNATURE</dt>
+ <dd>
+ is the signature of the HELLO.
+ </dd>
+ <dt>EXPIRATION</dt>
+ <dd>
+ denotes the absolute 64-bit expiration date of the HELLO.
+ In microseconds since midnight (0 hour), January 1, 1970 in network
+ byte order.
+ </dd>
<dt>ADDRESSES</dt>
<dd>
is a list of UTF-8 <xref target="RFC3629"/> URIs
@@ -1336,6 +1346,68 @@ Connectivity | |Underlay| |Underlay|
</dd>
</dl>
<t>
+ The SIGNATURE covers a 64-bit pseudo header
+ conceptually prefixed to the block. The pseudo header includes
+ the block length, number of addresses and signature purpose.
+ The wire format is illustrated
+ in <xref target="figure_hellowithpseudo"/>.
+ </t>
+ <figure anchor="figure_hellowithpseudo">
+ <artwork name="" type="" align="left" alt=""><![CDATA[
+0 8 16 24 32 40 48 56
++-----+-----+-----+-----+-----+-----+-----+-----+
+| SIZE (0x30) | PURPOSE (0x03) |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| MSIZE | MTYPE | 0x00 | NADDR |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| PEER-ID |
+| (32 byte) |
+| |
+| |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| SIGNATURE |
+| (64 byte) |
+| |
+| |
+| |
+| |
+| |
+| |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| EXPIRATION |
++-----+-----+-----+-----+-----+-----+-----+-----+
+/ ADDRESSES /
+/ (variable length) /
++-----+-----+-----+-----+-----+-----+-----+-----+
+ ]]></artwork>
+ </figure>
+ <t>The Wire Format of the HELLO for Signing.</t>
+ <dl>
+ <dt>SIZE</dt>
+ <dd>
+ A 32-bit value containing the length of the signed data in bytes
+ in network byte order.
+ </dd>
+ <dt>PURPOSE</dt>
+ <dd>
+ A 32-bit signature purpose flag. This field MUST be 3 (in network
+ byte order).
+ </dd>
+ <dt>MSIZE</dt>
+ <dd>
+ The 16-bit message size (FIXME Why).
+ </dd>
+ <dt>MTYPE</dt>
+ <dd>
+ the 16-bit message type (FIXME Why).
+ </dd>
+ <dt>NADDR</dt>
+ <dd>
+ the number of addresses in the block. In network byte order.
+ </dd>
+ </dl>
+
+ <t>
A HELLO reply block MAY be empty. Otherwise, it contains the
HELLO of a node.
</t>