aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2024-03-17 20:02:32 +0000
committerNick Mathewson <nickm@torproject.org>2024-03-17 20:02:32 +0000
commit4198fc5aefd36de87bb1e2a1096a8cecc4f544d3 (patch)
tree596f20a2524afb06a8d1e155bd2ee010b715faf7
parent78c35edf29974a3a740014f1a3102cb1f5f0da3d (diff)
parente3f2950c733cac1cf40ff952dcaed7e03883695b (diff)
downloadtorspec-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.md21
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: