| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| | |
Preserve HTTP status text in dirclient errors.
See merge request tpo/core/arti!1780
|
| | |
| |
| |
| |
| |
| |
| |
| | |
The HTTP status text is often useful for diagnosing errors. Tor
directory and hsdir caches frequently put useful messages there,
especially when rejecting an uploaded document.
Inspired by #1142.
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main changes that we have to adjust for are as follows:
* In x25519-dalek:
* `StaticSecret` is now behind a feature.
* `StaticSecret::new` is deprecated in favor of
`StaticSecret::random_from_rng`.
* StaticSecret no longer does its own clamping.
* In ed25519-dalek:
* `SecretKey` has (in effect) been renamed to `SigningKey`. The name
`SecretKey` is now an alias for `[u8; 32]`.
* `SigningKey` is effectively a keypair, since it contains a
public key as well.
* `PublicKey` has been renamed to `VerifyingKey`.
* The functions to extract a signing key and verifying key have
been renamed as you might expect.
* `ExpandedSecretKey` has been moved to `hasmat` and no longer
implements `sign`.
* `ExpanededSecretKey` now has as its elements a scalar and a hash
prefix.
* Various functions that took `&[u8]` now take `&[u8; N]`.
* We no longer need a wrapper for older versions of rand.
There is a single test in tor-keymgr that does not pass. I've
marked it as ignore for now, in hopes that @gabi-250 can help me
figure it out.
This closes #808. There are several changes I want to make before
we merge, however. They are marked with TODO DALEK.
|
| | |
|
| | |
|
| |
|
|
| |
Closes #1078.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For now we do this by changing the meaning of the name
`MockSleepProvider` in runtime.rs. This is a bodge to reduce noise in
this diff.
Consequences at call sites:
* If the type is named somehow, the other type must be used.
* SimpleMockTimeProvider calls it jump_wallclock rather than jump_to,
which is IMO a better name. (MockRuntime will change in a moment.)
* SimpleMockTimeProvider's advance() function isn't async and doesn't
yield. But none of the call sites actually mind that.
|
| | |
|
| |
|
|
| |
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).
|
| |
|
|
|
| |
See
https://gitlab.torproject.org/tpo/core/arti/-/issues/1040
|
| | |
|
| |
|
|
|
| |
We might loop, sleeping for zero. In real life this wouldn't last
long, but with the mock executor it can busy loop.
|
| |
|
|
| |
The secret keys are prefixed with `KS`, not `KP`.
|
| | |
|
| |
|
|
| |
`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`.
|
| |\
| |
| |
| |
| |
| |
| | |
add_warning: Change missing_docs,unreachable_pub to warn
Closes #951
See merge request tpo/core/arti!1470
|
| | | |
|
| |/
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
| |
| |
| | |
Closes #950.
|
| |/
|
|
|
|
| |
Now we can reliably wait precisely for the tasks to be all waiting.
This test case no longer involves any real executor.
|
| | |
|