| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This restores the functionality of
socks users: detect closed sockets.
0c595818f713916d94b7b0e4062f953fad7c9799
which we reverted as part of rebasing this branch onto main.
|
| | | |
| | |
| | |
| | | |
This is neater, I think.
|
| | | |
| | |
| | |
| | | |
Fixes #1627 / TROVE-2024-010
|
| | | |
| | |
| | |
| | | |
No functional change.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This deduplicates some docs and eliminates the two wrapper functiosn
for `run_handshake`, which is now just `handshake`.
We're going to make other API breaks too, and this isn't going to be
the primary API, so we might as well do this.
Proper description of the semver breakage will come at the end when
it's all done.
|
| | | |
| | |
| | |
| | | |
This reverts commit 0c595818f713916d94b7b0e4062f953fad7c9799.
|
| | | |
| | |
| | |
| | | |
This reverts commit dceeb82f7d1154894ab9c7c607d68f8335bb9615.
|
| | |/
| |
| |
| |
| |
| | |
data"
This reverts commit 87e0109832559dec41a485b268579d58be0de278.
|
| |\ \
| |/
|/|
| |
| | |
Warn on nonlocal addresses in configuration, PT results
See merge request tpo/core/arti!2454
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
arti: Silence unused_mut warning.
See merge request tpo/core/arti!2431
|
| | | |
| | |
| | |
| | | |
The `config` is only mutated if `onion-service-service` is enabled.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
arti: add an example for onion service "reject" option
See merge request tpo/core/arti!2458
|
| | | | |
| | | |
| | | |
| | | | |
There was previously no example here.
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
arti: move 'relay' subcommand to 'subcommands::relay' module
See merge request tpo/core/arti!2455
|
| | | | | |
|
| |\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | | |
Upgrade dependencies in preparation for next week's releases.
See merge request tpo/core/arti!2450
|
| | |/ /
| | |
| | |
| | |
| | |
| | | |
The `derive_more` crate broke backward compatibility with this version,
so this change involved quite a few manual fixups.
With luck, they'll keep compatibility for some while in the future.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When calling copy_within, we want to copy the amount of data that
we're keeping; previously, we were copying an extra `action.drain`
bytes, which could have led to a panic.
Spotted by Opara.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Without this check, our socks code can enter an infinite loop
if a socket is closed at the wrong time.
Resolves TROVE-2024-011.
Fixes #1635.
|
| |\ \
| | |
| | |
| | |
| | | |
socks: Implement proposal 351.
See merge request tpo/core/arti!2401
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Introduce an enum, and use explicit `format_code @` syntax.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
(These streams would already be isolated by accident, since streams
with an RPC object are always on a client that's isolated from the
main client. But, as discussed on torspec!280, it's best to do this
sort of thing explicitly.)
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
The current best source here is prop351,
and later will be socks-extensions.md.
The examples are now correct.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
See https://spec.torproject.org/proposals/351-socks-auth-extensions.html
This proposal changes the interpretation of SOCKS5
usernames/passwords to give a more principled and extensible way of
getting RPC IDs and isolation strings.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
arti SOCKS proxy: Tear down connections when client sends optimistic data
See merge request tpo/core/arti!2443
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We *do* want to support optimistic data, see
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2436#note_3081886
However, right now, Arti risks mis-framing bugs if clients do send
optimistic data, which would be quite serious.
Mitigates #1627 / TROVE-2024-010 by replacing the misframing bug with
connection failure.
It doesn't seem so easy to write a test case for this.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When specifying a delegation, the template user must also say what
type they're delegating to.
We're going to use this to document and expose delegations.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
rtcompat: Second attempt at AF_UNIX support
Closes #1152
See merge request tpo/core/arti!2437
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
(And similarly rename TcpListener to NetStreamListener,
along with their TcpStream/TcpListener associated types.)
These types are about to become generic over addresses,
and therefore shouldn't be named after TCP.
Renaming was done mostly with Rust Analyzer,
except for some macros that needed to be hand-edited.
(I'll revise the comments in the next commit;
this one is all about renaming.)
|
| | | | | | |
|
| |/ / / /
| | | |
| | | |
| | | |
| | | | |
The keystore settings only configure the *primary* keystore, so they
should be under `keystore.primary`.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, arti's primary keystore was referred to as its "default"
keystore. However, "default" is inaccurate here: there is no way to
meaningfully override this "default" (the "default" store acts as the
main keystore). Throughout the codebase, we query all keystores for keys
(including the secondary ones), but only ever write to the
default/primary keystore. This is OK for now, because it enables us to
have one mutable keystore, and multiple secondary, read-only stores.
|
| |/ / / |
|
| | | |
| | |
| | |
| | | |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2435#note_3080452
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This new feature is experimental.
|
| | | |
| | |
| | |
| | | |
Closes #1475
|
| | | |
| | |
| | |
| | | |
Part of #1475
|
| | | |
| | |
| | |
| | |
| | | |
This will be reused for `arti hsc key rotate`, which also outputs
the public key.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I am deprecating the old `hsc get-key` subcommand in favor of the new
`hsc key get` subcommand. This is because I plan to implement the rest
of the key management functionality (key deletion, rotation, etc.) as
subcommands of the `hsc key` command. The alternative would be to add a
new distinct top-level `hsc rotate-key`, `hsc remove-key`, etc.
subcommand alongside the existing `hsc get-key` command (which IMO is
less nice than the alternative I'm proposing).
|
| | | |
| | |
| | |
| | | |
These will be reused by a future `key rotate` subcommand.
|
| | | |
| | |
| | |
| | |
| | | |
Otherwise, if/when we add support for other `KeyType`s we risk
forgetting to update the rest of the implementation.
|