| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \
| | |
| | |
| | |
| | | |
proto: Make PathEntry::Virtual feature-conditional.
See merge request tpo/core/arti!1201
|
| | | |
| | |
| | |
| | |
| | | |
This fixes a warning when building tor-proto without the
`rpc-common` feature.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
rpc: authentication and basic handle manipulation
See merge request tpo/core/arti!1200
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Rationale: Our weak-vs-strong design is a bit confused at the moment
due to concerns about deduplication and capability semantics. It's
not clear that a general "change strong to weak" method is
compatible with what we want to provide.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
I've made doing some design choices here:
* Reserving "rpc" as a prefix for post-authentication
functionality that is not arti-specific.
* Declaring these to be methods on the session rather than methods
on the objects themselves.
There's a problem with defining an API to drop a weak reference; see
comment in code.
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This will make it easier to change the semantics of what exactly we
return, whether it has to be/contain a client, whether you can use
it to look up all the live objects, &etc.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
rpc: Use the real generational-arena crate
See merge request tpo/core/arti!1203
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Now that generation-arena has merged [@diziet's patch] to clarify
their license, we no longer need to disable it.
[@diziet's patch]: https://github.com/fitzgen/generational-arena/pull/56
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously we allowed this license unconditionally. But because of its
non-self-enacting nature, we need the actual notice from its "exhibit A"
to appear somewhere that says that it applies to all the relevant code.
Therefore, we shouldn't take new MPL-2.0 dependencies without
hand-checking them. (I am tentatively allowing option-ext, though,
since we already have an indirect dependency on that crate via
`directories`.)
For more info, see https://gitlab.torproject.org/tpo/core/arti/-/issues/845
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
cell: Make EstablishRendezvous contain a RendCookie.
See merge request tpo/core/arti!1202
|
| |/ / / / |
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | | |
Fix a local-only CPU DoS bug.
Closes #861
See merge request tpo/core/arti!1196
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, there was a bug in the way that our code used our SOCKS
implementations. If the buffer used for a SOCKS handshake became full
without completing the handshake, then rather than expanding the buffer
or closing the connection, our code would keep trying to read into the
zero-byte slice available in the full buffer forever, in a tight loop.
We're classifying this as a LOW-severity issue, since it is only
exploitable by pluggable transports (which are trusted) and by
local applications with access to the SOCKS port.
Closes #861.
Fixes TROVE-2023-001.
Reported-By: Jakob Lell <jakob AT srlabs DOT de>
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
shadow tests: bump to shadow 3.0
See merge request tpo/core/arti!1199
|
| | | | | | |
|
| | | | | | |
|
| | | |_|/
| |/| | |
|
| |\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | | |
maint/thanks: Include some git trailers in acknowledgments
See merge request tpo/core/arti!1194
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Okay, technically we're removing everything between the first `<` and
the `>` at the end of the line.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When building our list of acknowledgments, previously we would only
include author and committer names.
Now we also include anybody listed in the "Reported-by",
"Co-authored-by", and "Thanks" trailers.
|
| |\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | | |
Fix misc regressions in nascent HS client code
See merge request tpo/core/arti!1197
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Method dispatch rules mean that if the receiver type of the actual
function changes, `self.call()` can turn into a purely-recursive call
which overflows the stack.
Async Rust doesn't have the usual warning for this situation :-(.
UFCS is clumsier but doesn't have that problem because it involves
much less magical dispatch. Instead of generating a recursive call
which overflows the stack, it fails to compile.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ClientCirc::begin_dir_stream now takes Arc<Self>. Method resolution
rules mean that this code would just recurse, leading to a stack
overflow.
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes warning from
cargo -o doc --document-private-items --all-features --workspace
This was evidentlhy overlooked during recent replacement of unescorted
private keys in the code.
|
| |\ \ \
| |_|/
|/| |
| | |
| | | |
Upgrade miscellaneous dependencies
See merge request tpo/core/arti!1195
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
(`cargo-upgrade` warns about this.)
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | | |
Fix a few warnings from clippy nightly
See merge request tpo/core/arti!1193
|
| | | |
| | |
| | |
| | |
| | |
| | | |
I could also have stopped using `::default()` to construct this
(testing-only) object, but I think it makes more sense to turn it
into a non-unit object.
|
| | | |
| | |
| | |
| | | |
Found by clippy nightly
|
| | |/
| |
| |
| |
| | |
I don't love this change, but apparently we are trying for
"consistency".
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Refactor code not to use unescorted ed25519 secrets
Closes #798
See merge request tpo/core/arti!1192
|
| | | |
| | |
| | |
| | |
| | | |
(It said that we want to deprecate all unescorted secret keys; in
fact, only unescorted EdDSA secrets are bad.)
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Fortunately, these are all in experimental code.
Closes #798
|
| | | |
| | |
| | |
| | | |
Part of #798: We no longer use unescorted ed25519 secret keys.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Per #798, we want to make sure that we never pass around an
`ed25519::SecretKey`; only an `ed25519::Keypair` (or
`ExpandedKeypair`). This is because, when you're computing an
ed25519 signature, you have to use the public key as one of your
inputs, and if you ever use a mismatched public key you are
vulnerable to a nonce reuse attack.
(For more info see
https://moderncrypto.org/mail-archive/curves/2020/001012.html )
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is like an `ed25519::Keypair`, except that instead of a
`SecretKey` it contains an `ExpandedSecretKey`.
We'll be using this to implement #798, where we impose a rule that
there must be no "unescorted" ed25519 secret keys.
|