commit b5671012094ca01bcea022bcc13b0ff470dc6fa8
parent 02885526b4353ecd96ee7990a2f0dedc7612ebca
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Mon, 31 Jul 2023 08:27:39 +0200
More wire formats
Diffstat:
1 file changed, 66 insertions(+), 9 deletions(-)
diff --git a/draft-gnunet-communicators.xml b/draft-gnunet-communicators.xml
@@ -280,14 +280,15 @@ DeriveKID(MSK,SEQ):
with each successive encryption (sent/received message).
</t>
</section>
- <section anchor="udp_messages" numbered="true" toc="default">
- <name>Message formats</name><t>
- All metadata for headers is chosen such that they are indistinguishable from random.
- For the use of (ephemeral) ECC public key material, this probably requires the use of additional randomization
- techniques such as Elligator (TODO).
- There are three distinct message types that are sent and received by UDP communciators: KX, BOX, BROADCAST.
- In any case, the common header is 32 + 16 bytes in length.
- </t>
+ <section anchor="udp_kx" numbered="true" toc="default">
+ <name>KX Header</name>
+ <t>
+ All metadata for headers is chosen such that they are indistinguishable from random.
+ For the use of (ephemeral) ECC public key material, this probably requires the use of additional randomization
+ techniques such as Elligator (TODO).
+ There are three distinct message types that are sent and received by UDP communciators: KX, BOX, BROADCAST.
+ In any case, the common header is 32 + 16 bytes in length.
+ </t>
<figure anchor="figure_udp_initialkx" title="The binary representation of the initial key exchange packet.">
<artwork name="" type="" align="left" alt=""><![CDATA[
0 8 16 24
@@ -462,6 +463,9 @@ DeriveKID(MSK,SEQ):
<t>
TODO UDPAck payload. TODO UDPRekey payload.
</t>
+ </section>
+ <section anchor="udp_box" numbered="true" toc="default">
+ <name>BOX Header</name>
<figure anchor="figure_udp_box" title="The binary representation of the UDP Box.">
<artwork name="" type="" align="left" alt=""><![CDATA[
0 8 16 24
@@ -512,7 +516,60 @@ DeriveKID(MSK,SEQ):
FIXME: UDPAck, Broadcast
</t>
</section>
- </section>
+ <section anchor="udp_ack" numbered="true" toc="default">
+ <name>Ack metadata</name>
+ <figure anchor="figure_udp_ack" title="The wire format of an ACK header.">
+ <artwork name="" type="" align="left" alt=""><![CDATA[
+0 16
++-----+-----+-----+-----+-----+-----+-----+-----+
+| SIZE | TYPE (0x0X) |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| SEQ ACK |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| MSK HASH (fromerly CMAC) |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
++-----+-----+-----+-----+-----+-----+-----+-----+
+ ]]></artwork>
+ </figure>
+ </section>
+ <section anchor="udp_rekey" numbered="true" toc="default">
+ <name>Rekey metadata</name>
+ <figure anchor="figure_udp_rekey" title="The wire format of a REKEY header.">
+ <artwork name="" type="" align="left" alt=""><![CDATA[
+0 16
++-----+-----+-----+-----+-----+-----+-----+-----+
+| SIZE | TYPE (0x0X) |
++-----+-----+-----+-----+-----+-----+-----+-----+
+| EPHEMERAL PUBLIC KEY |
+| |
+| |
+| |
+| |
+| |
+| |
+| |
++-----+-----+-----+-----+-----+-----+-----+-----+
+ ]]></artwork>
+ </figure>
+ </section>
+ <section anchor="udp_bc" numbered="true" toc="default">
+ <name>BROADCAST Message</name>
+ </section>
+ </section>
<section anchor="tcp_comm" numbered="true" toc="default">
<name>TCP communicators</name>
<t>