lsd0007

LSD0007: GNUnet communicators
Log | Files | Refs

commit 805d397c7feceeab1b0b2f3cdaf372d8d5936303
parent 9225017694ccaa8cfd1d8a98b89da320ff06caa3
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Fri, 23 Aug 2024 15:20:21 +0200

more http3

Diffstat:
Mdraft-gnunet-communicators.xml | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+), 0 deletions(-)

diff --git a/draft-gnunet-communicators.xml b/draft-gnunet-communicators.xml @@ -147,6 +147,11 @@ <dd> What is a communicator? </dd> + <dt>Peer Identity</dt> + <dd> + Peer IDs in GNUnet are Ed25519 public keys as defined <xref target="RFC8032"/> + and serialized accordingly. + </dd> </dl> </section> <section> @@ -1361,6 +1366,80 @@ SetupCipher(REC_ID, MSK): Upon receiving a response, the client immediately sends a new GET request to maintain an adequate number of long polling requests with the server. </t> + <figure anchor="figure_http3_msg" title="The wire format of exchanged messages."> + <artwork name="" type="" align="left" alt=""><![CDATA[ +0 8 16 24 32 40 48 56 ++-----+-----+-----+-----+-----+-----+-----+-----+ +| SIZE | TYPE (0x0X) | ++-----+-----+-----+-----+-----+-----+-----+-----+ +| MESSAGE | +| | +| | +| | ++-----+-----+-----+-----+-----+-----+-----+-----+ + ]]></artwork> + </figure> + <dl> + <dt>SIZE</dt> + <dd> + A 16-bit value containing the length of the signed data in bytes + in network byte order. + </dd> + <dt></dt> + <dd> + A 16-bit type flag in network byte order. The value of this + field <bcp14>MUST</bcp14> be XY. + The value of this field corresponds to an entry in the + GANA "GNUnet Message Type" registry <xref target="GANA"/>. + </dd> + <dt>MESSAGE</dt> + <dd> + The message. + </dd> + </dl> + <t> + Example POST: + </t> + <artwork name="" type="" align="left" alt=""><![CDATA[ +:method: POST +:scheme: https +:authority: PEER'S IP ADDRESS +:path: / +content-type: application/octet-stream +content-length: LENGTH OF MESSAGE +]]></artwork> + <t> + If server no data to send it will respond with HTTP status OK (200). + If server has data to send it will respond with HTTP status OK and + a response body with a message (<xref target="figure_http3_msg"/>) and + content type <tt>application/octet-stream</tt> + </t> + <t> + GET request example (long polling): + </t> + <artwork name="" type="" align="left" alt=""><![CDATA[ +:method: GET +:scheme: https +:authority: PEER'S IP ADDRESS +:path: / + ]]></artwork> + <t> + If server no data to send and the long poll times out it will + respond with status 204. + If server has data to send it will respond with HTTP status OK (200) + a response body with a message (<xref target="figure_http3_msg"/>) and + content type <tt>application/octet-stream</tt>. + </t> + <section anchor="http3_handshake" numbered="true" toc="default"> + <name>Handshake</name> + <t> + The public keys in the certificates in use as part of the TLS handshake + are not verified or evaluated against a trust store. + The initial message by the initiating peer (the HTTP/3 client) will + contain the peer identity. + In the future, the peer identity should be part of the TLS handshake instead. + </t> + </section> </section> <section anchor="security" numbered="true" toc="default"> <name>Security and Privacy Considerations</name>