| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | |/
|/|
| |
| |
| | |
The client will be used by future subcommands too, not just
`prepare_service_discovery_key`.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
arti: Allow running hidden services with SOCKS/DNS proxying disabled.
Closes #1569
See merge request tpo/core/arti!2423
|
| | | |
| | |
| | |
| | | |
If `socks_listen` is disabled, we're not actually running in SOCKS mode.
|
| | | |
| | |
| | |
| | | |
Closes #1569
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The `hss get-key` subcommand is now folded into `onion-name`, which
takes a `--generate` argument which specifies whether to generate the
key if missing.
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2419#note_3078068
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds a new `hss get-key` subcommand for retrieving and generating
service identity keys. The existing `hss onion-name` is now a
convenience alias for `hss get-key --generate=no --key-type=onion-name`.
Note: I am calling this new subcommand `get-key` for consistency with
its client counterpart (`hsc get-key`).
Closes #1621
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is needed because we'll soon add an `hss get-key` subcommand for
getting and/or generating a service identity key alongside `hss
onion-name` (`hss onion-name` will become a convenience around `hss
get-key --key-type=onion-name`).
|
| | | |
| | |
| | |
| | |
| | | |
This splits `onion_name` into multiple functions (which will be
repurposed for the future `hss get-key` implementation).
|
| | | |
| | |
| | |
| | |
| | | |
`hss` will soon sprout another subcommand, so I am preemptively
refactoring the `hss onion-name` implementation out of `hss::run()`.
|
| |/ /
| |
| |
| | |
The tests were added in !2275
|
| | |
| |
| |
| |
| |
| |
| |
| | |
No functional changes, this is just code motion.
This helps organize the code in `arti/src/lib.rs` a bit. It now only
contains the argument parsing and various other setup, and all the
subcommands are contained in separate modules.
|
| | |
| |
| |
| | |
No functional changes, this is just code motion.
|
| | |
| |
| |
| |
| | |
The implementation for `arti proxy` will soon be relocated to this new
module.
|
| |\ \
| | |
| | |
| | |
| | | |
rpc: Fix argument type for rpc_session_get_rpc_proxy_info
See merge request tpo/core/arti!2409
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Without this, we get a panic on startup when running with RPC!
(This stresses the need for an integration test for RPC;
I will start writing that after the Python wrapper lands.)
|
| |/ /
| |
| |
| | |
We don't support this yet, see #727.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-hsservice: Improve descriptor publisher status reporting
Closes #1216 and #1572
See merge request tpo/core/arti!2397
|
| | |/
| |
| |
| | |
We now log the onion service status on change.
|
| |/ |
|
| |
|
|
|
| |
Ticket #1509 will probably get rid of this constant,
but for now we may as well put it in one place.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Renamed address to tcp_address, and made it optional, so that later
we can have a unix_path, etc.
On deser side, add support for unrecognized listener types.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This belongs in a spec, but adding things to a spec is slow and
fraught. Instead we'll put it here for now and move it later.
There are some XXXXs about "finalizing" the design that we need to
resolve before we can merge !2373 and implement stream creation in
`arti-rpc-client-core`.
|
| |
|
|
|
|
|
|
| |
Currently this behaves the same as get_proxy_info,
but this may change in the future, if we introduce RPC-unsuitable
proxy ports.
(Also rename the get_proxy_info method to avoid x_ prefix.)
|