| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Since there is no way to construct a unix::SocketAddr on these
platforms, it's harmless to provide an implementation for
NetStreamProvider. What's more, doing so greatly simplifies our
AbstractAddr implementation.
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
As before, this commit does nothing interesting: it's a separate commit
because it reindents a lot of code.
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit does nothing interesting yet: it's a separate commit
because it reindents a lot of code.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This change will let us make a NetStreamProvider that works for
AF_UNIX addresses, and for "abstract" addresses.
I've decided to let this parameter have a default value of
`std::net::SocketAddr` for now. We can remove the default later
if we decide it's confusing.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Stop referring to TCP streams in its documentation;
update other documentation to refer to NetStreamProvider
rather than TcpProvider.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
(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.)
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
It's redundant with the incoming() method (which turns the
TcpListener into a Stream of connections), and nothing actually used
it outside of tests.
Removing this method allows us to simplify our TcpListener code a
good deal, as can be seen by some of the implementations we removed
from our example and testing code.
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
With this extension trait, we no longer need to construct
`CompoundRuntime` directly outside of tor-rtcompat. This in turn
will make it a little less painful when we have to add more generics
to CompoundRuntime.
|
| |\ \ \ \ \ \
| |/ / / / /
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-keymgr: Move keystore.kind under keystore.primary.kind
Closes #858
See merge request tpo/core/arti!2441
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In !2394 we settled on `kind`. This updates the error messages to
reference the new field name.
|
| | | | | | | |
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The keystore settings only configure the *primary* keystore, so they
should be under `keystore.primary`.
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This is a follow-up from !2394
I want to keep the `keystore.enabled` option, because I'm planning on
extending `ArtiKeystoreConfig` to support configuring secondary
keystores too (currently, the only supported setting is `keystore.kind`,
which configures the primary keystore). `keystore.enabled` will disable
keystore use altogether (i.e. both primary and secondary).
Currently, we only support configuring the "primary" (previously known
as "default") keystore, which can be either "native" (the on-disk Arti
keystore), or "ephemeral" (an in-memory keystore). To implement #858,
we will need to support configuring additional keystores too, so we will
need to move to a config of the form
```toml
[storage.keystore]
# Whether the keystore is enabled.
#enabled = "auto"
# Configure the primary keystore.
[storage.keystore.primary]
# The type of primary keystore to use
kind = "auto" | "native" | "ephemeral"
# Optionally configure C Tor keystores for arti to use.
#
# Note: The keystores listed here are read-only (keys are only
# ever written to the primary keystore, configured in
# `storage.keystore.primary`).
[[storage.keystore.ctor]]
# If the `kind` is `service`, this should be set to the `HiddenServiceDirectory`
# of your hidden service. Arti will read `HiddenServiceDirectory/hostname`
# and `HiddenServiceDirectory/private_key`. (Note: if your service is running
# in restricted discovery mode, you must set the
# `[[onion_services."<the nickname of your svc>".restricted_discovery.key_dirs]]`
# to `HiddenServiceDirectory/client_keys`
#
# If the `kind` is `client`, this should be set to `ClientOnionAuthDir` of
# your client. If Arti is configured to run as a client (i.e. if it runs in SOCKS
# proxy mode), it will read the client restricted discovery keys from this path.
path = "/foo/bar"
# The type of keystore `path` should be interpreted as
kind = "client" | "service"
```
This moves the current keystore settings to `storage.keystore.primary`
in preparation for that change.
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
I am adding `is_enabled()` back because I plan to un-deprecate the
`enabled` setting.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
tor-keymgr: Rename the primary keystore for clarity.
See merge request tpo/core/arti!2438
|
| | | | | | | |
|
| | | | | | | |
|
| |/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Bug 1610: Add support for constructing ArtiEphemeralKeystore to InertTorClient::create_keymgr()
Closes #1610
See merge request tpo/core/arti!2394
|
| | | | | | |
| | | | | |
| | | | | |
| | | | | | |
InertTorClient::create_keymgr()
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | |/ / / / |
|
| |\ \ \ \ \
| |/ / / /
|/| | | |
| | | | |
| | | | | |
Add CI job integration-chutney-shadow
See merge request tpo/core/arti!2427
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We'll want this in the shadow-chutney test too.
No harm in just doing it for all jobs.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is a wrapper script for running `tests/chutney/integration-e2e`
under shadow.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously `tests/chutney/setup` would locate *or install* chutney and
set `CHUTNEY_PATH` for itself. However that `CHUTNEY_PATH` wasn't
propagated to other steps or "up" to the new `integration-e2e` wrapper
script.
Tracking it in the arti.run along with other dynamic info lets us ensure
we consistently use the same chutney across steps, and in the higher
level `integration-e2e` script.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It looks like it changed at some point. Rather than hard-coding,
just do the lookup locally and compare the tor-lookup result against
that.
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Having this in a script is a step towards being able to run exactly the
same test under shadow without duplicating this high-level logic.
It's also convenient for running the ci test locally.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
arti: Add hsc subcommands for key rotation and deletion
Closes #1475
See merge request tpo/core/arti!2435
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2435#note_3080452
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This new feature is experimental.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
By default `--key-type` is set to `restricted-discovery` so it can
omitted from these examples (omitting it makes the usage a bit clearer
IMO).
|
| | | | | | |
|
| | | | | | |
|