Commit Graph

34250 Commits

Author SHA1 Message Date
David Goulet 709d7fba11 hs-v3: Return bad address SOCKS5 extended error
If ExtendedErrors is set for the SocksPort, an invalid .onion address now
returns the 0xF6 error code per prop304.

Closes #30022

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-21 13:02:29 +02:00
George Kadianakis 21b3303657 Rename REGISTER_SUCCESS_ALSO_DECRYPTED to REGISTER_SUCCESS_AND_DECRYPTED. 2019-11-18 19:21:45 +02:00
George Kadianakis 97fd75169d Various minor improvements after David's review.
- Fix a wrong log message
- Introduce a cap for the nickname size
- Change some 'if' statements to 'switch'.
2019-11-18 19:21:41 +02:00
George Kadianakis ce422a9d4a hs-v3: Decrypt pending descriptors when we get new client auth creds. 2019-11-18 19:21:34 +02:00
George Kadianakis 53ac9a9a91 Add changes file for #30381. 2019-11-18 19:21:10 +02:00
George Kadianakis b996d55bcd control-port: Tests for ONION_CLIENT_AUTH_VIEW. 2019-11-18 19:19:10 +02:00
George Kadianakis db6a48b6bf control-port: Implement ONION_CLIENT_AUTH_VIEW. 2019-11-18 19:19:00 +02:00
George Kadianakis ee4b2287c6 control-port: Tests for ONION_CLIENT_AUTH_REMOVE. 2019-11-18 19:18:56 +02:00
George Kadianakis 8330b4dc2a control-port: Implement ONION_CLIENT_AUTH_REMOVE. 2019-11-18 19:18:49 +02:00
George Kadianakis 46f4415022 control-port: Tests for ONION_CLIENT_AUTH_ADD. 2019-11-18 19:18:45 +02:00
George Kadianakis 00fdaaee1e control-port: Implement ONION_CLIENT_AUTH_ADD. 2019-11-18 19:16:01 +02:00
George Kadianakis d28b6792cb Merge branch 'tor-github/pr/1423' 2019-11-18 19:06:53 +02:00
David Goulet d60ed5a6a2 doc: Manpage entry for ExtendedErrors of prop304
Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet 3892ac7c71 test: Unit test for the hs cache decrypt on new auth
Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet c0dd5324b3 test: Unit test for the SOCKS5 HS client auth errors
Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet 68a004d147 hs-v3: Improve documentation of hs_cache_client_descriptor_t
Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet 48a9f8a63f hs-v3: Function to re-parse unencrypted descriptor
We now keep descriptor that we can't decode due to missing client
authorization in the cache.

This new function is used when new client authorization are added and to tell
the client cache to retry decoding.

Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet fbc18c8989 hs-v3: Refactor descriptor dir fetch done code
This commit extract most of the code that dirclient.c had to handle the end of
a descriptor directory requests (fetch). It is moved into hs_client.c in order
to have one single point of entry and the rest is fully handled by the HS
subsystem.

As part of #30382, depending on how the descriptor ended up stored (decoded or
not), different SOCKS error code can be returned.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet 80f241907c hs-v3: Set extended error if .onion is invalid
In order to achieve this, the parse_extended_hostname() had to be refactored
to return either success or failure and setting the hostname type in the given
parameter.

The reason for that is so it can detect invalid onion addresses that is having
a ".onion", the right length but just not passing validation.

That way, we can send back the prop304 ExtendedError "X'F1' Onion Service
Descriptor Is Invalid" to notify the SOCKS connection of the invalid onion
address.

Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet 542402cd60 hs-v3: Set extended error when missing/bad client auth
Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet fb1d212021 hs-v3: Set extended error when descriptor is not found
Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet 7bba8bf72f hs-v3: Return descriptor decoding status when storing as client
This will allow us to callback into the HS subsytem depending on the decoding
status and return an extended SOCKS5 error code depending on the decoding
issue.

This is how we'll be able to tell the SocksPort connection if we are missing
or have bad client authorization for a service.

Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
David Goulet 96a53221b0 hs-v3: Keep descriptor in cache if client auth is missing or bad
We now keep the descriptor in the cache, obviously not decoded, if it can't be
decrypted for which we believe client authorization is missing or unusable
(bad).

This way, it can be used later once the client authorization are added or
updated.

Part of #30382

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-11-18 19:06:43 +02:00
teor c34fb3413d Merge remote-tracking branch 'tor-github/pr/1517' 2019-11-18 11:21:37 +10:00
Nick Mathewson 183f89ccac Merge remote-tracking branch 'tor-github/pr/1545' 2019-11-16 15:30:00 -05:00
Nick Mathewson b0c1634ce9 Merge remote-tracking branch 'tor-github/pr/1544' 2019-11-16 15:29:14 -05:00
Nick Mathewson 59ba61a690 Make structs declared by tor_queues.h macros also follow naming rules 2019-11-16 15:27:08 -05:00
Nick Mathewson cc271afeda map.h: replace maptype with mapname_t
This change makes our macro bodies consistent with our naming
expectations for structs and types outside macro bodies.
2019-11-16 15:20:47 -05:00
Nick Mathewson 0c80c2e45f handles.h: replace structname with structname_t
This change makes our macro bodies consistent with our naming
expectations for structs and types outside macro bodies.
2019-11-16 15:20:32 -05:00
Nick Mathewson 5a1a60e65e Revise struct names in examples in comments to end with _t 2019-11-16 15:12:35 -05:00
Neel Chauhan c8859eb754 Remove the extra whitespace around the DARWIN #defines 2019-11-15 15:05:53 -05:00
Neel Chauhan 4874b00065 Remove the extra whitespace in the lines_eq() if statement in consdiff_gen_diff() 2019-11-15 14:56:47 -05:00
Nick Mathewson 8b91680d5c Doxygen: rename all .dox files to end with .md
Using a standard ending here will let other tools that expect
markdown understand our output here.

This commit was automatically generated with:

   for fn in $(find src -name '*.dox'); do \
      git mv "$fn" "${fn%.dox}.md"; \
   done
2019-11-15 09:28:12 -05:00
Nick Mathewson 3a7369d0cf Doxygen: remove /** and **/ from all .dox files
This is an automatically generated commit, made with:

find src -name '*.dox' | \
   xargs  perl -i -ne 'print unless (m#^\s*/?\*\*/?\s*$#);'
2019-11-15 09:23:51 -05:00
Nick Mathewson 625ad65382 Doxygen: expect .md files, not .dox files
Also, I have to add src/rust/registry to the excluded paths, since
it includes .md files that Doxygen can't handle.
2019-11-15 09:23:10 -05:00
Nick Mathewson 108d2967a7 Process "dox" files as regular markdown. 2019-11-15 09:20:51 -05:00
Nick Mathewson 97b5ff2b1d Merge branch 'ticket32211' 2019-11-15 09:10:11 -05:00
Nick Mathewson 8746fedce4 Initialization documents: incorporate feedback from review.
(Thanks, Taylor!)
2019-11-15 09:00:54 -05:00
Nick Mathewson 7aaa4ae303 copy 0.4.2.4-rc changelog to master 2019-11-15 08:14:43 -05:00
Nick Mathewson 00cdb17a54 Merge branch 'maint-0.4.2'
"ours" to avoid version bump.
2019-11-15 08:06:36 -05:00
Nick Mathewson 6d81ca845c bump version to 0.4.2.4-rc-dev 2019-11-15 08:06:09 -05:00
teor 825f52784d Merge remote-tracking branch 'tor-github/pr/1535' 2019-11-15 12:11:32 +10:00
teor b58e5091b7 Merge remote-tracking branch 'tor-github/pr/1533' 2019-11-15 12:11:22 +10:00
teor d8d36c7dc3 Merge remote-tracking branch 'tor-github/pr/1536' 2019-11-15 11:28:29 +10:00
Nick Mathewson d57a04b648 Avoid redundant typedef of or_options_t and smartlist_t in *_config.h
Fixes bug 32495.
2019-11-14 15:43:53 -05:00
David Goulet 196be8ca26 Merge branch 'tor-github/pr/1537' 2019-11-14 12:59:28 -05:00
Nick Mathewson cf79ffaf1e Fix 32-bit warnings in test_circuitmux.c
Fixes bug 32496; bug not in any released Tor.
2019-11-14 11:04:10 -05:00
David Goulet 1371d29e5b Merge branch 'tor-github/pr/1489' 2019-11-14 10:37:14 -05:00
Nick Mathewson a76b7cd8b5 Merge remote-tracking branch 'tor-github/pr/1531' 2019-11-14 09:58:37 -05:00
teor d19f370aa2 Run "make autostyle" 2019-11-14 16:28:39 +10:00