diff options
author | Nick Mathewson <nickm@torproject.org> | 2024-03-17 20:02:32 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2024-03-17 20:02:32 +0000 |
commit | 4198fc5aefd36de87bb1e2a1096a8cecc4f544d3 (patch) | |
tree | 596f20a2524afb06a8d1e155bd2ee010b715faf7 | |
parent | 78c35edf29974a3a740014f1a3102cb1f5f0da3d (diff) | |
parent | e3f2950c733cac1cf40ff952dcaed7e03883695b (diff) | |
download | torspec-4198fc5aefd36de87bb1e2a1096a8cecc4f544d3.tar.gz torspec-4198fc5aefd36de87bb1e2a1096a8cecc4f544d3.zip |
Merge branch 'intro-ext' into 'main'
Clarifications about INTRODUCE1/2 extensions
See merge request tpo/core/torspec!255
-rw-r--r-- | spec/rend-spec/introduction-protocol.md | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/spec/rend-spec/introduction-protocol.md b/spec/rend-spec/introduction-protocol.md index 829ba98..43c5638 100644 --- a/spec/rend-spec/introduction-protocol.md +++ b/spec/rend-spec/introduction-protocol.md @@ -463,10 +463,22 @@ will have: The same rules for multiplicity, ordering, and handling unknown types apply to the extension fields here as described \[EST_INTRO\] above. -### INTRODUCE1 Extensions +### INTRODUCE1/INTRODUCE2 Extensions The following sections details the currently supported or reserved extensions -of an `INTRODUCE1` message. +of an `INTRODUCE1`/`INTRODUCE2` message. + +Note that there are two sets of extensions in `INTRODUCE1`/`INTRODUCE2`: +one in the top-level, unencrypted portion, +and one within the plaintext of ENCRYPTED +(ie, after RENDEZVOUS_COOKIE and before ONION_KEY_TYPE. + +The sets of extensions allowed in each part of the message are disjoint: +each extension is valid in only *one* of the two places. + +Nevertheless, for historical reasons, +both kinds of extension are listed in this section, +and they use nonoverlapping values of `EXT_FIELD_TYPE`. #### Congestion Control @@ -483,7 +495,7 @@ ntorv3, if the service did not list "2" in the `FlowCtrl` line in the descriptor. The client SHOULD NOT provide this field if the consensus parameter 'cc_alg' is 0. -The service MUST ignore any unknown fields. +This appears in the ENCRYPTED section of the INTRODUCE1/INTRODUCE2 message. #### Proof-of-Work (PoW) {#INTRO1_POW_EXT} @@ -493,8 +505,7 @@ An acceptable proof will raise the priority of this introduction request accordi This is for the [proof-of-work DoS mitigation](../dos-spec/overview.md#hs-intro-pow), described in depth by the [Proof of Work for onion service introduction](../hspow-spec/index.md) specification. -If used, it needs to be encoded within the N_EXTENSIONS field of the -encrypted portion of the INTRO1/INTRO2 message. (After RENDEZVOUS_COOKIE and before ONION_KEY_TYPE) +This appears in the ENCRYPTED section of the INTRODUCE1/INTRODUCE2 message. The content is defined as follows: |