| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | |
|
| |\| | |
| |/ /
|/| |
| | |
| | |
| | |
| | | |
Privacy: Do not list supported encodings in hsdesc reqs.
Closes #1062
See merge request tpo/core/arti!1675
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since not everybody has xz and/or zstd, we don't want to admit
whether we support them when we are uploading or downloading an
onion service descriptor. Similarly, if we aren't advertising
support for an encoding, we shouldn't accept it.
Finally, while we're doing this, it made sense to have the ability
to mark requests based on how anonymized they are, and reject (some)
attempts to send those requests over a one-hop circuit.
Closes #1062
|
| | |/ |
|
| |\ \
| |/
|/|
| |
| | |
tor-ptmgr: Handle unsupported escapes
See merge request tpo/core/arti!1584
|
| |/ |
|
| |\
| |
| |
| |
| | |
ArtiPathComponent: Disallow consecutive . in paths
See merge request tpo/core/arti!1661
|
| |/ |
|
| |\
| |
| |
| |
| | |
tor-keymgr: Encode whether the key is public or private in the file extension.
See merge request tpo/core/arti!1672
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are 2 reasons to make this change:
* because having the word `private` in the extension will make it more
difficult to accidentally misuse or misplace a private key (see
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1618#note_2947461)
* because `Keystore`s will soon grow a `list()` function returning all
`(ArtiPath, KeyType)`s in the keystore, and in order for
`ArtiNativeKeystore` to implement this function, it will need to be
able to reverse the `KeyType -> file extension` mapping (if two
different `KeyType`s are mapped to the same extension,
`ArtiNativeKeystore`s won't be able to reverse the mapping)
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Sort introduction point lists by ntor public key.
Closes #1039
See merge request tpo/core/arti!1674
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Closes #1039
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
tor-hsservice: timeout track: More docs
See merge request tpo/core/arti!1673
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Simply running `rustfmt` makes a mess.
This new formatting is less nice but repo policy requires that the
layout is a fixed point under rustfmt and this is the least bad fixed
point I found.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Suppresses some erroneous warnings.
|
| |\ \ \
| |/ /
|/| |
| | |
| | | |
arti, tor-config: Allow listening on generic addresses for SOCKS and DNS.
See merge request tpo/core/arti!1613
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Cleanups , fixes,and tests in IPT manager
See merge request tpo/core/arti!1659
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
And add a TODO HSS for improving it.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
I wish we could `use Duration::from_secs as secs`.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This doesn't test all the code paths, but it does test the main path
of execution (and detected a couple of bugs).
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
We're want to be able to return a mutable borrow of a field in the
mock state. This means we must make `Rng` a GAT.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The key point is this:
+//! I.e., the timeout tracker tells you when (in the future)
+//! any of the comparisons you have made, might produce different answers.
+//! So, that can be used to know how long to sleep for when waiting for timeout(s).
That's how the code in ipt_mgr.rs uses this. Without this change,
things go wrong in the following case: we've got at least one good
IPT, but not quite enough, and the others are taking too long. Ie,
the timeout for "we should publish" is in the past. We decide to
publish (correctly) but this *past* timeout should be disregarded.
Disregarding past timeouts is correct if the code which is making the
comparisons acts on the timeout when it occurs.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
For the same reason as the allow(unreachable_pub).
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This involves plumbing the duration through. Also it involved
breaking out the multiplication by two into an addition, since if we
were to change the factor we'd want to print the scaled value.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
We're going to improve the "establishing_very_recently" one in a
moment.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Add a colon. This is going to be the style for our trace and debug
output.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
If the time we're supposed to wait is zero, something has gone wrong.
We'd probably just go round again and loop indefinitely.
|
| | | | |
| | | |
| | | |
| | | | |
This is a backstop to stop us just spinning. Instead, we crash.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
We never called the `started_establishing_very_recently` machinery.
Do so.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
lifetime is passed in the IptSet and doesn't want to be made absolute
here.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This calculation is now done elsewhere: the addition of
IPT_PUBLISH_EXPIRY_SLOP happens in IptSet::note_publication_attempt
and the storage in the manager's data structure is done by
IptManager::import_new_expiry_times.
|
| | | | | |
|