| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| | |
Refactor the logic for constructing crypt layers.
See merge request tpo/core/arti!2048
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The key insights here are:
- That relay cell format and crypto protocols aren't orthogonal:
Once we have GCO, it will require V1.
- That we only need the actual functions for layer construction to
be generic; we don't need to proliferate generic parameters
everywhere.
- That the circuit::handshake module already does most of what we
want.
|
| |/
|
|
|
|
| |
In all the uses in-crate, this is just a RealCoarseTimeProvider.
Now all the compound runtimes impl CoarseTimeProvider.
|
| | |
|
| |
|
|
|
|
|
| |
With the new structure here, it's less likely that somebody will
think this is the length of a circuit that we are building.
See #1332 for an instance of what we're trying to prevent.
|
| | |
|
| |
|
|
| |
Part of #1297
|
| |
|
|
| |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1904#note_2987777
|
| |
|
|
| |
This is now in the spec, with torspec!236.
|
| |
|
|
|
|
|
|
| |
* Be a little more specific about what is being parallelized.
* Remove TODOs about specs, in favor of torspec#244.
* Note some other issues surrounding some of the cases.
(See discussions of points 3-6 at #913)
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Since none of these methods were invoked from outside
`tor-dirclient` (except for debugging), and since we have had a fair
amount of churn on what we actually want them to be, it seems like a
good idea to use this trick to hide them. This will let us make
other changes to the actual behavior of Requestable in the future.
|
| |
|
|
| |
StaticSecret (fmt).
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
StaticSecret.
Previously, when retrieving `KS_hsc_desc_enc` keys (or any other x25519
keys) from the keystore, the keymgr would discard the public part of the
key (SSH private keys contain the public part of the key too). Instead
of discarding the public key and returning just the `StaticSecret`, the
keymgr now returns a `StaticKeypair`. This makes the x25519
`EncodableKey`/`ToEncodableKey` implementation consistent with the
ed25519 one (which retrieves key pairs rather than "unescorted"
secrets).
|
| | |
|
| |
|
|
| |
`HsBlindId` is `Copy`.
|
| | |
|
| |
|
|
|
|
| |
`download()` is actually a general-purpose function for sending HTTP
requests on a stream. We will soon repurpose it for `POST`-ing
descriptors, so let's rename it to `send_request`.
|
| |
|
|
|
|
|
|
|
|
|
| |
This will enable hidden services to send `RENDEZVOUS1` messages to the
`N`th hop of the circuit rather than the `N + 1`th virtual one (which
can only used after the client and service have completed the
introduction handshake).
This also deprecates `start_conversation_last_hop`.
Closes #959
|
| |
|
|
|
|
|
|
|
|
|
| |
rustfmt has grown opinions about how let ... else ... ought to be
formatted. They don't always agree with our previous manual
decisions.
I think our policy is to always insist on rustfmt. When that version
of rustfmt hits stable, our CI will start to fail for everyone.
(Right now this discrepancy just causes trouble for contributors who
are using nightly by default.)
|
| | |
|
| |
|
|
|
|
|
|
| |
The effect is that everywhere a RetryError is used, the error sources
for the contained errors will be Display'd.
In tor-hsclient we no longer need to explicitly wrap things up in
tor_error::Report.
|
| |\
| |
| |
| |
| | |
clippy: Allow some of our existing code patterns
See merge request tpo/core/arti!1396
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
Overhaul send_control_message
See merge request tpo/core/arti!1367
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
This is just a placeholder for now, but it'll be a thing you can send
more messages with.
|
| | | |
| | |
| | |
| | | |
Was send_control_message.
|
| | | |
| | |
| | |
| | |
| | | |
We're going to let people start a conversation and either expect to
receive first, or send messages ad-hoc later.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Was UninstallHandler. We are going to talk more about conversations
and less about handlers (although, the fact of there being a handler
will still be visible).
|
| |\| |
| |/
|/|
| |
| | |
tor-hsclient: Mock traits: Work around an async boobytrap
See merge request tpo/core/arti!1365
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
See here for documentation on the lint:
https://rust-lang.github.io/rust-clippy/master/index.html#/diverging_sub_expression
The issue here, from what I can tell, is that the lint triggers
whenever you use a diverging expression as a function body within an
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I identified the cases to replace by searching for the string
`.report()`. There are a few that I didn't change:
* A couple of cases that used anyhow::Error,
* One case that reported two Errors.
* Two cases in `tor_hsclient::err` that just did
`error!("Bug: {}")`.
I have also not audited the cases in `tor-hsclient` where we're using
`tor_error::Report` manually.
Nonetheless, closes #949.
|
| |\
| |
| |
| |
| | |
tor-hsclient: Use estimated timeouts
See merge request tpo/core/arti!1342
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Replacing RPT_IPT_TIMEOUT is not entirely straightforward.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| |/
|/|
| |
| | |
tor-netdoc: Handle anomalous numbers of introduction points
See merge request tpo/core/arti!1332
|
| | |
| |
| |
| | |
None of the existing NetdocErrorKinds seemed right.
|
| | |
| |
| |
| | |
Fixes #935
|
| | |
| |
| |
| |
| |
| |
| | |
Thsi is a bit of a mouthful now, but it is comprehensible.
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1336#note_2917235
|
| | | |
|
| |/
|
|
|
|
| |
We need to handle errors during the handshake. That also produces a
`tor_proto::Error` but we want to print a different message for that,
so let's rename this before adding the new variant.
|