Commit Graph

3456 Commits

Author SHA1 Message Date
Ian Jackson
9dee2f8efa State that "base32" always means RFC4648, unpadded.
I found src/lib/encoding/binascii.[ch] in the C Tor codebase.
It has
  #define BASE32_CHARS "abcdefghijklmnopqrstuvwxyz234567"

The function "base32_encode" says "Implements base32 encoding as in
RFC 4648.".  Now, that RFC says that it's supposed to be padded unless
explicitly stated otherwise.  However, the padding is pointless and
neither our "base32_encode" nor our "base32_decode" seem to implemnet
it.

I hope that we are using the same base32 encoding everywhere, but have
not checked.
2023-03-07 13:25:15 +00:00
Roger Dingledine
29fbf57f79 a few more grammar / whitespace fixes 2023-02-08 13:20:01 -05:00
Nick Mathewson
e8aea86688 Merge remote-tracking branch 'tor-gitlab/mr/113' 2023-02-08 11:40:11 -05:00
Nick Mathewson
7838586895 Refer to N_hs_desc_enc in description of encrypted-cookie 2023-02-08 11:39:37 -05:00
Nick Mathewson
4234d93259 Merge remote-tracking branches 'tor-gitlab/mr/114' and 'tor-gitlab/mr/115' 2023-02-08 11:37:35 -05:00
gabi-250
b7aeadeec6 Grammar fix 2023-02-08 16:35:02 +00:00
Ian Jackson
71d7e7184d Rename hs_index and hsdir_index to hs_{service,relay}_index
These new names are the ones used in arti's hsdir_ring.rs and make a
lot more sense than calling one of them the "directory" index and
the other just the "index".

In C Tor these are calculated by functions called
  hs_build_hs_index
  hs_build_hsdir_index

That might be a reason *not* to accept this change.  Or it might be a
reason to change the C Tor code.

If we don't change the names in the spec the Arti function names
should change.
2023-02-08 14:49:30 +00:00
Nick Mathewson
0b1289fd26 Remove mention of "password" auth in rend-spec.
It was never implemented, is not specified, and neither dgoulet nor
I can quite remember how it was supposed to work.
2023-02-07 15:10:54 -05:00
Nick Mathewson
2e8606c1bb Fix name of KP_hs_blind_id
By our current logic, it needs to have `hs` in it.
2023-02-07 15:10:15 -05:00
Nick Mathewson
c51fa4c53e Remove K_desc_enc.
It has no independent existence outside of the encryption algorithm
of 2.5.3.
2023-02-07 15:08:27 -05:00
Nick Mathewson
d44927c39e Name and clarify a few more objects. 2023-02-07 15:07:57 -05:00
Nick Mathewson
da8ecedde5 Rename three keys.
These names are slightly shorter and a bit more descriptive IMO, and
now (when they are still fresh) is the best time to rename these
keys.

`hs_intro_tid` becomes `hs_ipt_sid`: It is a _session identifier_
key used with an _introduction point_.  Using `ipt` here emphasizes
that it is not part of the introduction _handshake_.

`hs_intro_ntor` becomes `hss_ntor`. The extra "s" means it is owned
by the service. Renaming "intro" here removes the implication that
it is held by or used by the introduction point.

`onion_ntor` becomes `ntor`: There is no such thing as an ntor key
that is not an onion key.
2023-02-07 14:51:08 -05:00
Nick Mathewson
46356d252f Merge branch 'hs-htype' into 'main'
Fix terminology for handshake type

See merge request tpo/core/torspec!112
2023-02-06 21:01:00 +00:00
Nick Mathewson
e4596ecced Merge branch 'hs-desc-ephem' into 'main'
Call the key in desc-auth-ephemeral-key, KP_hs_desc_ephem

See merge request tpo/core/torspec!111
2023-02-06 21:00:24 +00:00
Ian Jackson
28cc4dc16b Mention, hopelessly, the undocumented "password" auth type 2023-02-06 15:08:00 +00:00
Ian Jackson
dc822431f3 Properly define "authentication types" in the relevant section
Use the phrase which is used elsehwer, and enumerate them again since
this is where one would expect to find that enumeration.
2023-02-06 15:07:10 +00:00
Ian Jackson
51fd440a19 Talk of "defined" rather than "recognized" auth types
We're not the code, we're the spec.  We can define things, not
recognise them.
2023-02-06 15:06:41 +00:00
Ian Jackson
ecd718e116 Add ed25519, the name of the auth type, to the heading 2023-02-06 15:04:46 +00:00
Ian Jackson
39513369c7 Put HTYPE (the name for this thing) in the title for the table 2023-02-06 14:52:47 +00:00
Ian Jackson
431f6152cf Fix terminology for handshake type
The phrase "format number" is not defined anywhere.  I think it means
an HTYPE value.
2023-02-06 14:51:45 +00:00
David Goulet
103c7720c0 Merge branch 'tor-gitlab/mr/102' 2023-02-06 09:03:51 -05:00
Ian Jackson
7b3d7a40a0 Use proper names for KP_hsc_desc_enc 2023-02-06 12:51:41 +00:00
Ian Jackson
5c6b282e57 Call the key in desc-auth-ephemeral-key, KP_hs_desc_ephem
Proposed by @nickm in
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/999/diffs#50f9790ab3f0a65f7ac3e4f413c84f51fae1f855_0_26

(I think the spec is not 100% clear that hs_y and hs_Y are *this* key,
rather than some other possible ephemeral keypair the HS might have,
so please would the reviewer check that this is actually true.)
2023-02-06 12:25:55 +00:00
Nick Mathewson
0fc6d07d88 More verbage in prop340 about the stream_id transition.
Specifically:

  * Mention this change in the introduction.
  * Add a section explaining how to change tor-spec
    and related proposals.
2023-02-03 13:02:52 -05:00
Nick Mathewson
ca400dc9f8 rend-spec: Document how the cross-certificates (don't) work.
(See text for more info!)
2023-01-31 11:18:06 -05:00
Nick Mathewson
5509981ced rend-spec: Clarify that enc-key and auth-key may appear multiple times.
The spec says "exactly once", but that only refers to the ntor
variant.
2023-01-31 10:57:34 -05:00
David Goulet
f88f6436d1 Merge branch 'tor-gitlab/mr/109' 2023-01-31 08:55:07 -05:00
Nick Mathewson
b842f50c4f Document missing NL in the middle layer of an HsDesc.
It looks like C tor doesn't include a final newline in the middle
layer of its onion service descriptors.  That made arti reject them
the first time I tried to parse one!  Here I document this behavior,
and tell other implementations what to do.
2023-01-30 16:46:58 -05:00
David Goulet
ad9a003673 Merge branch 'tor-gitlab/mr/74' 2023-01-27 15:55:27 -05:00
Nick Mathewson
63cb0fc1ef prop339: trunnel changes from review
* The syntax `IN [a,b]` means that a and b are the only valid options,
  which isn't what we want to say here.
* I'm changing the hostname tag to 0, which is the same as we have for
  RESOLVED cells.
2023-01-27 15:55:14 -05:00
David Goulet
0da1241f98 Merge branch 'tor-gitlab/mr/104' 2023-01-26 10:11:26 -05:00
Nick Mathewson
5e864771d1 rend-spec-v3: Clarify how the time period offset is computed.
Based on this email thread with dgoulet:

https://lists.torproject.org/pipermail/tor-dev/2023-January/014808.html
2023-01-24 15:17:54 -05:00
Ian Jackson
8f7f6f9e97 Clarify and tidy up KeywordLine Argument
* Introduce the notion of Argument, which is relied on in the
  rest of the document, but not defined here formally.

Spec changes implied by this diff:

* Forbid the arguments from containing form feeds, carriage returns,
  and vertical tabs.

* Forbid trailing whitespace after the last argument.  I'm not sure
  whether this is correct, but it seems anomalous to permit it for
  only for keyword lines with arguments, and not anywhere else.
2023-01-20 18:18:33 +00:00
Ian Jackson
f16803f6f9 tor-spec: Change KP to KP throughout
Emacs's idea of s/\bPK\b/KP/
2023-01-19 10:20:45 -05:00
Ian Jackson
dc4b593ce5 tor-spec: Clarifiy KP/KS in definition section 2023-01-19 10:20:45 -05:00
Ian Jackson
9ebadaa2af tor-spec: Change PK/SK to KP/KS in definition section 2023-01-19 10:20:45 -05:00
Ian Jackson
025d469837 Rename onion keys back to K*_onion_ntor
As per review comments
2023-01-19 10:20:45 -05:00
Ian Jackson
5f3e97cfa1 Provide names for HS client authentication keys 2023-01-19 10:20:45 -05:00
Ian Jackson
c1aa867819 Rename KP_hs_intro_auth to KP_hs_intro_tid 2023-01-19 10:20:45 -05:00
Ian Jackson
e1ee12e810 Document that keypairs should not double up roles, with example 2023-01-19 10:20:45 -05:00
Ian Jackson
3bdb23706a Revert "Say that HS identity keys are not the same as relay identity keys"
This reverts commit 81c1be641557d1cd3fb6d9195de08e9f411be517.
2023-01-19 10:20:45 -05:00
Ian Jackson
fc42e97dd3 Properly say KP_relayid rather than K_relayid 2023-01-19 10:20:45 -05:00
Ian Jackson
a4e3bdbe6e Properly say KS_onion_ed is a keypair 2023-01-19 10:20:45 -05:00
Ian Jackson
7bc2766bad K_hs_intro_ntor: rename from K_hs_intro_enc
Prompted by
  https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/105#note_2869614
2023-01-19 10:20:45 -05:00
Ian Jackson
0dd614681c Make all HS key names contain _hs_
Suggested here
  https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/105#note_2869613
2023-01-19 10:20:45 -05:00
Ian Jackson
90919950d1 Use _ed rather than _ntor for ed25519 keys
Even the ones that are actually ntor.  Perhaps that's wrong and those
should be ntor?  Personally I like it this way.
2023-01-19 10:20:45 -05:00
Ian Jackson
1d5ba4f51a Uwe formal notation for credential and subcredential
In particular, give these formal names which contain "hs" (since they
are part of the hidden service protocol, and not any other kind of
authentication or authorisation scheme), and "N" to indicate that they
are hash-generated nonces, not passwords.

Change the references in the formulae, which it really seems to me
ought to refer to the formal names.
2023-01-19 10:20:45 -05:00
Ian Jackson
3c68fd57e1 Give a formal name to shared_random_value 2023-01-19 10:20:45 -05:00
Ian Jackson
b631068870 rend-spec: Clarify and slightly reword credential explanation
Introduce the credential and subcredential before we use them.
Talk about the public identity key rather than the credential,
when we can.
2023-01-19 10:20:45 -05:00
Ian Jackson
e3dd512264 Say that HS identity keys are not the same as relay identity keys 2023-01-19 10:20:45 -05:00