summaryrefslogtreecommitdiff
path: root/crates/arti-relay/src
Commit message (Collapse)AuthorAgeFilesLines
* update `CfgPath::path` to use a `CfgPathResolver`Steven Engler2024-11-181-1/+3
| | | | | | | | | | | | | | | | This is a big change across multiple crates since there isn't a good way to break it up. This changes the signature of `CfgPath::path` to: ``` pub fn path(&self, path_resolver: &CfgPathResolver) -> Result<PathBuf, CfgPathError> { ``` Making this change means that our global `CfgPathResolver` needs to be stored in the 'arti-client' library instead of `tor-config-path`, and must be passed through to anything that calls `path` to expand the variables.
* arti-relay: small change to log level commentSteven Engler2024-11-141-1/+1
| | | | | In arti this option is just a convenience function to override the configuration option, so we'll probably want to do the same thing.
* arti-relay: remove TODO comment about runtimesSteven Engler2024-11-141-7/+3
|
* arti-relay: remove runtime/tls-related featuresSteven Engler2024-11-141-7/+1
|
* arti-relay: add cli testsSteven Engler2024-11-131-0/+35
|
* arti-relay: add 'build-info' subcommandSteven Engler2024-11-132-0/+13
|
* arti-relay: add clap for cliSteven Engler2024-11-132-2/+109
| | | | The options are inspired by the arti cli interface.
* tor-config: removed re-export of `CfgPath`Steven Engler2024-11-041-1/+2
| | | | | Also updated other packages to get `CfgPath` directly from `tor-config-path' instead of 'tor-config'.
* tor-relay-crypto: Add a denotator to RelaySigningKeypairSpecifier.Gabriela Moldovan2024-10-311-1/+1
| | | | | | | This will enable us to store more than one `K_relaysign_ed` in the keystore. Closes #1692
* tor-relay-crypto: Use the KS_ prefix for RelayIdentityKeySpecifier.Gabriela Moldovan2024-10-311-2/+2
| | | | | | | | | | According to its docs, `RelayIdentityKeySpecifier` was meant to be the key specifier for the relay identity keypair, so its role prefix should be `KS_`. This also renames `RelayIdentityKeySpecifier` to `RelayIdentityKeypairSpecifier` for clarity (we're about to add another specifier here, for the public relay identity key).
* memquota: Change ToplevelAccount to be an alias for Arc<MemoryQuotaTracker>Ian Jackson2024-10-151-1/+2
| | | | Fixes a TODO.
* arti-relay: Rename remaining XXXs to be TODOsDavid Goulet2024-10-102-4/+4
| | | | Signed-off-by: David Goulet <[email protected]>
* arti-relay: Fix cargo doc issuesDavid Goulet2024-10-102-3/+3
| | | | Signed-off-by: David Goulet <[email protected]>
* arti-relay: Remove the use of pub and pub useDavid Goulet2024-10-103-10/+8
| | | | | | | | | | | | | | | The "pub" and "pub(crate)" visibility in a binary crate is essentially the same except for the dead_code warning analysis which ignores "pub" but will warn at "pub(crate)". This should get fixed soon according to: https://github.com/rust-lang/rust/issues/74970 However, for now, lets catch all this dead code :). Part of #1674 Signed-off-by: David Goulet <[email protected]>
* arti-relay: Remove its library crateDavid Goulet2024-10-103-6/+12
| | | | | | | | | | | | Simply, the lib.rs is renamed to relay.rs (containing TorRelay object) so this crate can never be used as a library. This is important because at the moment, we don't want to have a relay stable API that can be used to embed relays in applications. Closes #1674 Signed-off-by: David Goulet <[email protected]>
* arti-relay: Add a binary to the crateDavid Goulet2024-10-101-0/+8
| | | | | | | | | | | | At the moment, it is an empty main() acting as a place holder for this crate to become solely a binary crate. Write up a basic README.md in order to explain the current state. Next commit will remove the libary component by renaming lib.rs Part of #1674 Signed-off-by: David Goulet <[email protected]>
* tor-keymgr: Move config/arti.rs to config.rsGabriela Moldovan2024-10-081-1/+1
| | | | | | | | The config will soon contain secondary C Tor keystore configuration too, so the `arti` namespacing is about to stop making sense. I recommend reviewing this commit using `git diff --color-moved=zebra --ignore-space-change`
* memquota: Add a toplevel account in tor-chanmgrIan Jackson2024-10-031-0/+2
| | | | | | | | | Plumb through a top-level account. This doesn't have any channel-specific, circuit-specific or stream-specific accounts yet. tor-circmgr's and tor-hsclient's *tests* need fake account. In arti-relay, use a dummy account for now.
* tor-keymgr: Rename the primary keystore for clarity.Gabriela Moldovan2024-09-231-1/+1
| | | | | | | | | | 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.
* tor-keymgr: renamed ArtiNativeKeystoreConfig to ArtiKeystoreConfigMorgan2024-09-201-2/+2
|
* relay: Try to generate long-term identity keyDavid Goulet2024-09-181-5/+29
| | | | | | | | | | | | When creating the KeyMgr, attempt to create the long-term identity key if none are found in the KeyMgr. Until the KeyMgr has certificate support, we can't create the certificate. Add a TODO comment item about future work needed there. Related to #1604 Signed-off-by: David Goulet <[email protected]>
* relay: Add KeyMgr to TorRelayDavid Goulet2024-09-183-2/+65
| | | | | | | | | | | | This is the first step before creating relay key definition and storing them into a keystore. The KeyMgr should be passed on the ChanMgr in later commit so the ChanMgr can use it for the authenticated channel handshake. Part of #1604 Signed-off-by: David Goulet <[email protected]>
* arti-relay: add and use `Error`/`ErrorDetail`Steven Engler2024-09-053-4/+120
| | | | | | | | | | | | Most of this is copied from `arti_client::err`, but with a lot of stuff removed to simplify the error types (for example no `error_detail` feature handling). I tried to keep things generally consistent with arti-client so that error handling will be similar in both crates. `TorRelayBuilder::create()` will likely need to be fallible in the future (for example if spawning a task for the OR port listener fails), so it now returns a `Result<TorRelay, crate::err::Error>` instead of just a `TorRelay`.
* tor-relay: add `ChanMgr` to `TorRelay`Steven Engler2024-09-032-2/+41
|
* arti-relay: pass config in `TorRelay::create_inner`Steven Engler2024-09-032-3/+4
|
* relay: Add basic configuration and builderDavid Goulet2024-08-203-2/+237
| | | | | | | | | | | | | | | This adds the basic TorRelayConfig object along a builder in order to create a TorRelay object. At this commit, the configuration object only holds a "StorageConfig" which is a simple starting point which will allow to expand to a KeyMgr and then a ChanMgr along more configuration. There is also no custom Error for the crate at this point. Fixes #1534 Signed-off-by: David Goulet <[email protected]>
* relay: Add relay cargo feature flag and subcommandDavid Goulet2024-06-111-0/+2
Add the optional non default feature flag "relay" that will be used to enable relay support of arti. This commit also adds the "relay" subcommand to arti binary conditionnal on the feature flag in order to have a place holder starting point. Signed-off-by: David Goulet <[email protected]>