diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-09-19 09:35:22 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-09-19 09:35:22 -0400 |
commit | 3540da456b70c46d7601101b73c57439c455ff73 (patch) | |
tree | d4e6d304d0cc73d95d15de1fbdb6394bcebfde45 /tor-spec.txt | |
parent | 609abee7106061d6edd859847eb67f1945f1474b (diff) | |
download | torspec-3540da456b70c46d7601101b73c57439c455ff73.tar.gz torspec-3540da456b70c46d7601101b73c57439c455ff73.zip |
Correct our description of circID MSB logic
In protocol <= 3 we allowed OPs to set the circID msb however they
wanted. We don't do that any more in >= 4.
Closes ticket 22882.
Diffstat (limited to 'tor-spec.txt')
-rw-r--r-- | tor-spec.txt | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/tor-spec.txt b/tor-spec.txt index f7bd546..4d572ec 100644 --- a/tor-spec.txt +++ b/tor-spec.txt @@ -792,18 +792,19 @@ see tor-design.pdf. To prevent CircID collisions, when one node sends a CREATE cell to another, it chooses from only one half of the possible values based - on the ORs' public identity keys. In link protocol version 3 or - lower, if the sending node has a lower key, it chooses a CircID with - an MSB of 0; otherwise, it chooses a CircID with an MSB of 1. (Public - keys are compared numerically by modulus.) + on the ORs' public identity keys. + + In link protocol version 3 or lower, if the sending node has a lower + key, it chooses a CircID with an MSB of 0; otherwise, it chooses a + CircID with an MSB of 1. (Public keys are compared numerically by + modulus.) With protocol version 3 or lower, a client with no public key + MAY choose any CircID it wishes, since clients never need to process a + CREATE cell. In link protocol version 4 or higher, whichever node initiated the connection sets its MSB to 1, and whichever node didn't initiate the connection sets its MSB to 0. - (An OP with no public key MAY choose any CircID it wishes, since an OP - never needs to process a CREATE cell.) - The CircID value 0 is specifically reserved for cells that do not belong to any circuit: CircID 0 must not be used for circuits. No other CircID value, including 0x8000 or 0x80000000, is reserved. |