Commit Graph

8112 Commits

Author SHA1 Message Date
Ian Jackson 6918a7869e tor-rtmock: Expose time_until_next_timeout on MockRuntime 2023-08-23 09:59:37 +01:00
Nick Mathewson 8007c1bd08 Merge branch 'spelling' into 'main'
Fix a few typos.

See merge request tpo/core/arti!1532
2023-08-22 20:58:11 +00:00
Nick Mathewson c2faedbca7 arti-client: Fix a couple more typos.
I spotted these while I was working on something else.
2023-08-22 16:23:51 -04:00
Nick Mathewson 7a37641aeb Use "typos-cli" to fix a bunch of typos. 2023-08-22 16:23:51 -04:00
Nick Mathewson 2d50ffb0a7 Merge branch 'nightly-warnings-20230822' into 'main'
Fix a few warnings from nightly clippy

See merge request tpo/core/arti!1533
2023-08-22 17:01:05 +00:00
Nick Mathewson 7f44281725 arti::cfg tests: Use fold to make nightly clippy happier 2023-08-22 12:24:51 -04:00
Nick Mathewson c0e050b640 Resolve a pair of warnings about redundant closures. 2023-08-22 12:24:51 -04:00
gabi-250 d633efc28b Merge branch 'netdir-todo-2-take-2' into 'main'
tor-netdir: Add separate functions for computing hsdirs for upload/download.

See merge request tpo/core/arti!1518
2023-08-22 15:46:10 +00:00
Nick Mathewson 5e9140d1b8 Merge branch 'ipt_establish_better' into 'main'
hsserrvice: resolve many TODOs in ipt_establish.rs

See merge request tpo/core/arti!1522
2023-08-22 15:45:32 +00:00
Nick Mathewson f7adbce05a hss: use send_raw_msg in rend_handshake. 2023-08-22 10:56:08 -04:00
Nick Mathewson 232c6d957e hss: Improve comments in IptEstablisher::drop. 2023-08-22 10:51:19 -04:00
Nick Mathewson d792bc2a5f hss: Allow IptEstablisher to start in Advertised mode. 2023-08-22 10:51:19 -04:00
Nick Mathewson 980407a894 hss: switch to select_biased 2023-08-22 10:51:19 -04:00
Nick Mathewson 683e607db7 hss: change terminate oneshot to send "void".
We don't actually want to distinguish drop from not-drop.
2023-08-22 10:51:19 -04:00
Nick Mathewson 2a20d1b05a hss: enable tor_proto/experimental-api
Needed for ClientCirc::wait_for_close
2023-08-22 10:51:18 -04:00
Nick Mathewson 1309bc6753 HSS: Use correct timeouts and delays in IptEstablisher 2023-08-22 10:50:43 -04:00
Nick Mathewson 28b8c9c31c HSS: Use a more accurate timeout for ESTABLISH_INTRO handshake. 2023-08-22 10:50:43 -04:00
Nick Mathewson ec6721ec94 HSS: Refactor RendRequest so we can return a stream of it.
We need a type that holds a rend_handshake::IntroRequest object
internally, but where we don't materialize that object from the
Introduce2 message inside the MsgHandler, since that's more crypto
than we want to put in that task.
2023-08-22 10:50:43 -04:00
Nick Mathewson 85c3820a5e HSS: Use DropNotifyWatchSender.
This ensures that the status becomes Faulty when the reactor exits.
2023-08-22 10:50:43 -04:00
Nick Mathewson 8439500e57 HSS: Implement start_accepting and drop for IptEstablisher.
This does not yet do exactly what's documented, but it's closer.
2023-08-22 10:50:43 -04:00
Nick Mathewson 36424540dd hss: launch task to establish introduce requests.
(This requires us to change the type of the data sent in the
stream. I hope to put it back soon.)
2023-08-22 10:50:43 -04:00
Nick Mathewson 07e7eabd3f hss: Once an ipt session is established, let it keep running. 2023-08-22 10:50:43 -04:00
Nick Mathewson 7c14371898 hss: make Ipt establisher code use an mpsc::Sender.
This solves some problems but introduces a few new ones; I've tried
to open comments for the latter.
2023-08-22 10:50:43 -04:00
Nick Mathewson d83ff291bf hss: Establish intro point by RelayIds. 2023-08-22 10:50:43 -04:00
Nick Mathewson 6021976466 proto: fix a comment to refer to circuits, not channels. 2023-08-22 10:50:43 -04:00
Gabriela Moldovan b1c54adae7
tor-netdir: Use an owned HsBlindId instead of a reference.
`HsBlindId` is `Copy`.
2023-08-22 15:48:07 +01:00
Gabriela Moldovan 59b94ed06c
tor-netdir: Replace flat_map() with cartesian_product(). 2023-08-22 15:48:04 +01:00
Gabriela Moldovan 3e193ebd63
tor-netdir: Make `hs_dirs_upload` take an iterator instead of a slice (fmt). 2023-08-22 15:48:00 +01:00
Gabriela Moldovan d651b3e3a2
tor-netdir: Make `hs_dirs_upload` take an iterator instead of a slice. 2023-08-22 15:47:57 +01:00
Gabriela Moldovan 3090259b55
tor-netdir: Add TODO about making HsDirOp private.
When `hs_dirs` is removed this won't n't need to be public anymore.
2023-08-22 15:47:54 +01:00
Gabriela Moldovan b0c3fc73ca
tor-hsclient: Use hs_dirs_download instead of the deprecated hs_dirs. 2023-08-22 15:47:51 +01:00
Gabriela Moldovan 83f26aebde
tor-netdir: Deprecate hs_dirs(). 2023-08-22 15:47:47 +01:00
Gabriela Moldovan 47e24dc8eb
tor-netdir: Add separate functions for computing hsdirs for upload/download.
The hsdir selection algorithm for uploads and downloads is different
enough to justify splitting `hs_dirs` into 2 different functions.
More specifically, when selecting the relays to upload a service's
descriptors to, the service's `hsids` need to be matched up with the
correct `ring` (using the time period) before applying `select_nodes` to
pick the replicas. This is not the case when downloading, because
for downloads select relays from the current ring.
2023-08-22 15:47:44 +01:00
Gabriela Moldovan 7e4c850efd
tor-netdir: Add private helpers for selecting hsdirs.
These will become useful when we split `hs_dirs()` into 2 separate
functions (one for uploading/services, and another for
downloading/clients).
2023-08-22 15:47:41 +01:00
Ian Jackson 1955e70499 Merge branch 'webpki-update' into 'main'
Resolve (mostly) RUSTSEC-2023-0052

See merge request tpo/core/arti!1534
2023-08-22 14:43:52 +00:00
Nick Mathewson f248607119 Merge branch 'send_raw_msg' into 'main'
proto: new ClientCirc::send_raw_msg function.

Closes #1010

See merge request tpo/core/arti!1525
2023-08-22 14:19:54 +00:00
Ian Jackson 403c931072 Merge branch 'upgrade_num_enum' into 'main'
Upgrade num_enum dependency to 0.7

See merge request tpo/core/arti!1530
2023-08-22 14:15:12 +00:00
Nick Mathewson 78328f096e Merge branch 'redundant_config_links' into 'main'
Resolve warnings about ambiguous/redundant doc links

See merge request tpo/core/arti!1531
2023-08-22 14:07:44 +00:00
Nick Mathewson 55bc297704 Add a cargo-audit exception for RUSTSEC-2023-0052
We've solved this for rustls-webpki, but tls-api (which arti-hyper
uses) still requires the unmaintained webpki crate.  See #1016.
2023-08-22 10:00:02 -04:00
Nick Mathewson 109efd3152 Merge branch 'hss_ct_from_parts' into 'main'
hsservice: Compute rendezvous points correctly.

See merge request tpo/core/arti!1521
2023-08-22 13:55:17 +00:00
Nick Mathewson 15bde8568c Upgrade to rustls-webpki unaffected by RUSTSEC-2023-0053 2023-08-22 09:42:08 -04:00
Nick Mathewson b4e0595f8d proto: Add crossrefs between start_conversation and send_raw_msg 2023-08-22 09:35:48 -04:00
Nick Mathewson 80c921c637 Resolve warnings about ambiguous/redundant doc links
Nightly rustdoc now warns if you have a link that isn't necessary,
and if you have a link that might refer to two different things.
2023-08-22 09:00:33 -04:00
Nick Mathewson 1ddf637572 hsservice: Fix an error message. 2023-08-22 08:04:12 -04:00
Nick Mathewson 3352b1373b hsservice: Compute rendezvous points correctly.
This duplicates some code from hsclient as noted in the comments;
it might be good to reduce this, but the remaining nontrivial
duplication is small, and the logic flow is slightly different
because of the two-step process.
2023-08-22 08:04:12 -04:00
Nick Mathewson 3e34cb6d33 Lower linkspec list parsing into new tor-linkspec method. 2023-08-22 08:04:12 -04:00
gabi-250 f47d0a8c27 Merge branch 'update-serde' into 'main'
upgrade serde to >=1.0.184 to not use prebuilt blob

Closes #1011

See merge request tpo/core/arti!1526
2023-08-22 09:48:08 +00:00
Micah Elizabeth Scott 26b5ae9a3c hashx: Use a boxed slice for Program storage
This is a very small change that converts our Vec cheaply into a boxed
slice during program generation. Program generation speed shows no
changes, and there's no change when using compiled hashes, but is a
surprisingly effective 10% speedup to interpreted hash execution.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-08-21 15:27:28 -07:00
Micah Elizabeth Scott 52dbdbea3b hashx: Assembly buffer sizing and tidying
I was looking for ways to optimize out the many redundant capacity
checks in the Assembler. I didn't find any promising approaches, but
I also saw no evidence that it was an important bottleneck. (A simple
unsafe fix didn't improve any important metrics)

While I was in there, I tightened up the buffer size definitions for
both x86_64 and aarch64, and added assertions to test the limits we
set for the size of prologue, epilogue, and single instructions.

I kept some of the inlining and data type tweaks, even though benchmarks
show no difference. They seem like a step in the right direction, from
the disassembly at least.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-08-21 15:27:28 -07:00
Micah Elizabeth Scott acf598e785 hashx: avoid surprising overhead of enum code() method
This is a very simple change that avoids a surprising performance
pitfall: using the code() method on an enum from another crate
caused a non-inlined function call in code where we otherwise expect
a high level of compiler optimization. Replacing code() with a cast
to u8 avoids this function call and allows more intensive optimization
at the call site.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-08-21 15:27:28 -07:00