summaryrefslogtreecommitdiff
path: root/crates/arti-client/src/client.rs
Commit message (Collapse)AuthorAgeFilesLines
* hsclient: Rename get_or_launch{connection => circuit}Nick Mathewson2023-10-241-1/+1
| | | | Closes #1078.
* tor-keymgr: Use ArtiPathError for invalid ArtiPaths.Gabriela Moldovan2023-10-191-2/+2
|
* arti-client: fix up launch_onion_service a bit.Nick Mathewson2023-10-031-10/+19
| | | | Return a stream of requests, and document what to do with them.
* hss: actually provide a stream of RendRequest from launch().Nick Mathewson2023-09-271-1/+1
|
* tor-hsservice: Run cargo fmt.Gabriela Moldovan2023-09-271-3/+1
|
* tor-hsservice: Make Launchable a non-async trait.Gabriela Moldovan2023-09-271-1/+0
| | | | | This doesn't need to be an async_trait now that `Publisher::launch` is no longer async.
* arti-client: add a minimal onion-service-launching API.Nick Mathewson2023-09-271-6/+54
|
* tor-hsclient, arti-client, tor-keymgr, tor-netdoc: Use a keypair instead of ↵Gabriela Moldovan2023-09-251-2/+2
| | | | | | | | | | | | | StaticSecret. Previously, when retrieving `KS_hsc_desc_enc` keys (or any other x25519 keys) from the keystore, the keymgr would discard the public part of the key (SSH private keys contain the public part of the key too). Instead of discarding the public key and returning just the `StaticSecret`, the keymgr now returns a `StaticKeypair`. This makes the x25519 `EncodableKey`/`ToEncodableKey` implementation consistent with the ed25519 one (which retrieves key pairs rather than "unescorted" secrets).
* arti-client: add exit selection with GeoIP country codeseta2023-09-181-1/+40
| | | | | | | | | | | | | | | | | | | | This threads the country codes work through the rest of the codebase: - `tor-dirmgr` will now enable GeoIP with the embedded database when the `geoip` future is enabled - This can be extended later using the `DirMgrConfig` to allow specifying a custom database; this is not done here, though - `tor-circmgr`'s `SupportedCircUsage` and `TargetCircUsage` fields gain new `country_code` members to allow filtering circuits by country - These are `()` in builds where the `geoip` feature is not enabled -- doing it this way means we don't have to copy and paste huge swathes of code, since we can't use `#[cfg]` in patterns - `ExitPathBuilder` gains (hacked-in) support for choosing a relay with the correct country code - Due to the lack of conjuction, we just copy and paste a small bit, pending further refactoring - `StreamPrefs` now lets you specify a country code, letting embedders make use of the feature
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-231-0/+1
|
* Resolve a pair of warnings about redundant closures.Nick Mathewson2023-08-221-2/+2
|
* pass reconfigure_lock guard into TorClient::reconfigure_innersw1tch2023-07-251-3/+8
|
* cargo fmtsw1tch2023-07-241-1/+3
|
* fixes deadlock in TorClient::reconfiguresw1tch2023-07-241-1/+34
|
* Revert "keymgr: Require callers to be explicit about which keystore to get ↵Gabriela Moldovan2023-07-211-6/+4
| | | | | | | | | keys from." This reverts commit 38a6c74c7894dc96b16c9039cacc2a4023977b05. This also updates some tests to make them compile with the reverted version of the code.
* keymgr: Require callers to be explicit about which keystore to get keys from.Gabriela Moldovan2023-07-201-4/+6
|
* keymgr: Explicitly specify the default keystore for `KeyMgr`.Gabriela Moldovan2023-07-201-4/+5
|
* keymgr-config: Make fields private, add function for checking if keystore is ↵Gabriela Moldovan2023-07-201-5/+1
| | | | | | | | | enabled. Hiding the underlying value of `enabled` enables us to give it a different `auto` value depending on whether the `keymgr` feature is enabled or not (it defaults to `true` if `keymgr` is enabled, and `false` otherwise).
* arti-client: Use a default keystore config if `experimental-api` is disabled.Gabriela Moldovan2023-07-201-18/+15
| | | | | | | The `experimental-api` was only meant to apply to the use of the unstable `ArtiNativeKeystoreConfig` in the Arti config. `experimental-api` was _not_ supposed to be used for enabling/disabling the keystore (that's what the `enabled` flag is for).
* arti-client: Move variable closer to where it's used (fmt).Gabriela Moldovan2023-07-201-24/+21
|
* arti-client: Move variable closer to where it's used.Gabriela Moldovan2023-07-201-2/+1
|
* arti-client: Make the `KeyMgr` optional.Gabriela Moldovan2023-07-201-34/+43
| | | | | If the Arti keystore is disabled, we have nothing to initialize the `KeyMgr` with, so we might as well make it optional.
* arti-client: Add TODO about expanding the keystore_dir in build().Gabriela Moldovan2023-07-171-0/+2
|
* arti-client: Log whether a keystore is in use.Gabriela Moldovan2023-07-131-1/+4
|
* arti-client: Use the config struct from tor-keymgr.Gabriela Moldovan2023-07-131-7/+12
|
* arti-client: Log whether the client auth keys were retrieved.Gabriela Moldovan2023-07-121-0/+2
|
* arti-client: Remove outdated TODO.Gabriela Moldovan2023-07-111-3/+0
| | | | These errors aren't ignored anymore.
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-101-0/+1
|
* Remove some needless into_iter() calls.Nick Mathewson2023-07-101-2/+1
| | | | | | Clippy nightly now detects when you're calling into_iter() and passing the result into something that accepts an `impl IntoIterator`.
* Throughout: Use *_report!() macros for reporting Errors.Nick Mathewson2023-07-071-3/+3
| | | | | | | | | | | | | | | I identified the cases to replace by searching for the string `.report()`. There are a few that I didn't change: * A couple of cases that used anyhow::Error, * One case that reported two Errors. * Two cases in `tor_hsclient::err` that just did `error!("Bug: {}")`. I have also not audited the cases in `tor-hsclient` where we're using `tor_error::Report` manually. Nonetheless, closes #949.
* Finish a sentence in the documentation for TorClient::netdir()Nick Mathewson2023-07-031-1/+2
|
* keystore: Change the dummy HsClientSpecifier to "default".Gabriela Moldovan2023-06-301-1/+1
|
* keymgr: Rename KeyStore to Keystore globally.Gabriela Moldovan2023-06-291-5/+5
| | | | | We've been capitalizing the "s" in "KeyStore" inconsistently. This `s/KeyStore/Keystore/g` across the codebase.
* Merge branch 'validate-client-spec' into 'main'Ian Jackson2023-06-291-1/+2
|\ | | | | | | | | keymgr: Validate ArtiPaths, replace HsClientSpecifier with generic ArtiPathComponent See merge request tpo/core/arti!1262
| * Run rustfmtIan Jackson2023-06-291-3/+2
| |
| * keymgr: Define an error type for bad `ArtiPathComponents`.Gabriela Moldovan2023-06-291-12/+3
| |
| * arti-client, hsclient: Typealias HsClientSpecifier to ArtiPathComponent.Gabriela Moldovan2023-06-291-1/+12
| | | | | | | | `ArtiPathComponent` is a more generic version of `HsClientSpecifier`.
* | Merge branch 'keymgr-config' into 'main'gabi-2502023-06-291-9/+5
|\ \ | | | | | | | | | | | | arti-client: Add keystore_dir to StorageConfig. See merge request tpo/core/arti!1312
| * | arti-client: Fix clippy lints.Gabriela Moldovan2023-06-291-1/+1
| | | | | | | | | | | | Part of #891
| * | arti-client: Load keystore dir and permissions from config.Gabriela Moldovan2023-06-291-6/+2
| | | | | | | | | | | | Part of #891
| * | arti-client: Add keystore_dir to StorageConfig.Gabriela Moldovan2023-06-291-4/+4
| |/
* | arti-client: StreamPrefs: Add security noteIan Jackson2023-06-291-0/+7
| |
* | Turn off HS client connections by defaultIan Jackson2023-06-291-1/+1
|/ | | | As per IRC discussion, re lack of Vanguards.
* HS configuration: Plumb configuration through (fmt)Ian Jackson2023-06-281-1/+4
| | | | Apply deferred rustfmt churn.
* HS configuration: Plumb configuration through (clippy)Ian Jackson2023-06-281-4/+4
| | | | Apply deferred clippy churn.
* HS configuration: Plumb configuration throughIan Jackson2023-06-281-2/+2
| | | | | Invent a trait a la circmgr config for the hs client connector config. Plumb a suitable value all the way through to the code that will use it.
* HS configuration: Add and honour `allow_onion_addrs` in configurationIan Jackson2023-06-281-5/+10
| | | | | | | We put this in `[address_filter]`. The interaction with the corresponding stream preference is a bit complicated. We must turn the stream pref into a `BoolOrAuto`.
* tor-hsclient: Expire old data eventuallyIan Jackson2023-06-231-1/+12
| | | | Otherwise we'll fill up our RAM with junk.
* keymgr: Move dummy implementation to tor-keymgr.Gabriela Moldovan2023-06-221-1/+1
|
* Merge branch 'doc_link_fix' into 'main'Alexander Færøy2023-06-211-1/+1
|\ | | | | | | | | Fix a rustdoc link. See merge request tpo/core/arti!1274