summaryrefslogtreecommitdiff
path: root/crates/arti-client/src
Commit message (Collapse)AuthorAgeFilesLines
* keystore: Change the dummy HsClientSpecifier to "default".Gabriela Moldovan2023-06-301-1/+1
|
* Merge branch 'fix-unfortunate-merge-outcome' into 'main'Ian Jackson2023-06-301-1/+1
|\ | | | | | | | | arti-client: Rename KeyStore to Keystore. See merge request tpo/core/arti!1359
| * arti-client: Rename KeyStore to Keystore.Gabriela Moldovan2023-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | `KeyStore` was renamed to `Keystore` globally in !1355. This fixes a compile error caused an unfortunate series of non-conflicting (from git's POV) but incompatible merges: * !1356 added a line threferencing an error variant that capitalizes the "s" in "KeyStore" (`ErrorDetail::KeyStore`) * !1356 landed just before !1355 (the global renaming). Since there was no conflict between the 2, we're now in a state where the code added in !1356 is referencing an `ErrorDetail` variant that no longer exists.
* | Merge branch 'docsrs-fix' into 'main'Ian Jackson2023-06-301-0/+1
|\ \ | |/ |/| | | | | Add a missing "experimental-api" rustdoc notation See merge request tpo/core/arti!1353
| * Add a missing "experimental-api" rustdoc notationNick Mathewson2023-06-291-0/+1
| |
* | Merge branch 'keymgr-naming' into 'main'Alexander Færøy2023-06-302-7/+7
|\ \ | | | | | | | | | | | | keymgr: Rename KeyStore to Keystore globally. See merge request tpo/core/arti!1355
| * | keymgr: Rename KeyStore to Keystore globally.Gabriela Moldovan2023-06-292-7/+7
| |/ | | | | | | | | We've been capitalizing the "s" in "KeyStore" inconsistently. This `s/KeyStore/Keystore/g` across the codebase.
* / keymgr: Fix another infinite loop around Keymgr error handling.Gabriela Moldovan2023-06-291-1/+1
|/ | | | This `From` impl was just calling itself recursively...
* 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-292-9/+102
|\ \ | | | | | | | | | | | | arti-client: Add keystore_dir to StorageConfig. See merge request tpo/core/arti!1312
| * | arti-client: Fix clippy lint.Gabriela Moldovan2023-06-291-0/+1
| | |
| * | arti-client: Make keystore_dir an experimental option.Gabriela Moldovan2023-06-291-24/+17
| | |
| * | arti-client: Add TODO regarding keystore_dir deserialization.Gabriela Moldovan2023-06-291-0/+3
| | |
| * | tor-config: Make ItemOrBool an experimental feature.Gabriela Moldovan2023-06-291-3/+22
| | |
| * | 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 expand_keystore_dir function.Gabriela Moldovan2023-06-291-0/+13
| | | | | | | | | | | | Part of #891
| * | arti-client: Add keystore_dir to StorageConfig.Gabriela Moldovan2023-06-292-5/+73
| |/
* | arti-client: StreamPrefs: Add security noteIan Jackson2023-06-291-0/+7
| |
* | Turn off HS client connections by defaultIan Jackson2023-06-293-4/+4
| | | | | | | | As per IRC discussion, re lack of Vanguards.
* | arti-client tests: Explicitly enable .onion in most testsIan Jackson2023-06-291-2/+16
|/ | | | | These tests include tests of .onion, which we are disabling by default. So we must make some prefs that enable them.
* arti_client: Add a warning comment to TorAddrError.Nick Mathewson2023-06-291-0/+3
|
* arti_client: Move BadOnion from TorAddrError to ErrorDetail.Nick Mathewson2023-06-292-19/+7
| | | | | | | | | | This variant can never be constructed when parsing a TorAddr, so it doesn't make sense to have it in TorAddrError: the use can never see it unless they enable `error_detail`. Not a semver break because the client feature is not yet stable. Closes #932.
* 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-282-5/+5
| | | | Apply deferred clippy churn.
* HS configuration: Plumb configuration throughIan Jackson2023-06-282-2/+4
| | | | | 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-283-10/+25
| | | | | | | 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`.
* Also require that TorClientBuilder be Sync.Nick Mathewson2023-06-261-2/+2
|
* arti-client: Mark DirProviderBuilder Send+Sync;Nick Mathewson2023-06-261-1/+15
| | | | | | | | | | Doing this causes TorClientBuilder to become Send. I also add a test to ensure that TorClientBuilder remains Send in the future. This isn't a semver break, but only because DirProviderBuilder is marked with `experimental-api`. Closes #924
* 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-225-133/+4
|
* arti-client: Make all dummy APIs pub.Gabriela Moldovan2023-06-221-10/+12
| | | | | `dummy.rs` will be moved to `tor-keymgr`, which will export everything from the module.
* arti-client: Add a dummy KeyType.Gabriela Moldovan2023-06-221-0/+3
|
* Merge branch 'stderr' into 'main'Alexander Færøy2023-06-211-0/+2
|\ | | | | | | | | lints: Promote clippy::print_stderr and clippy::print_stdout See merge request tpo/core/arti!1271
| * lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
| |
* | Merge branch 'keymgr-api-consistency' into 'main'Ian Jackson2023-06-211-1/+1
|\ \ | | | | | | | | | | | | keymgr: Remove Error::NotFound, update KeyMgr, KeyStore APIs. See merge request tpo/core/arti!1280
| * | keymgr: Remove Error::NotFound, update KeyMgr, KeyStore APIs.Gabriela Moldovan2023-06-211-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the `NotFound` `tor_keymgr::Error` variant. Since `KeyMgr` and `KeyStore` users will need to be able to distinguish between "not found" errors and other I/O errors, this also changes the return types of the `get()` and `remove()` functions of `KeyStore` and `KeyMgr`, which now return `Ok(None)` instead of `Error::NotFound`. This makes the `KeyStore` API consistent with `KeyMgr::get`, which already has a return type of `Result<Option<K>>` (rather than `Result<K>`). This also prepares us for #901, which will make key store errors opaque. Without this change: * we'd have to create a `struct NotFoundError;` error type. Its `HasKind` impl would need to return a new `ErrorKind::KeyStoreErrorNotFound` `ErrorKind` variant * callers would have to match the `error_kind()` of the error to figure out whether the key simply can't be found (`ErrorKind::KeyStoreErrorNotFound`), or if something went wrong (any other `ErrorKind`). Given the above, I think `Result<Option<()>>` makes for a more ergonomic API. Part of #901
* | 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
| * | Fix a rustdoc link.Nick Mathewson2023-06-211-1/+1
| |/
* | Remove extra 'this' in some methodsSaksham Mittal2023-06-211-3/+3
| |
* | Create chanmgr() method in TorClientSaksham Mittal2023-06-211-0/+9
|/
* arti-client: Remove unnecessary #[cfgs(...)].Gabriela Moldovan2023-06-201-5/+0
| | | | | | | | The `keymgr` module selects one of the key manager implementations (dummy or "real") and exposes all the APIs we need, so we can remove all of the cfgs related to the `keymgr` feature from `client.rs`. Part of #897
* arti-client: Create module exposing one of the key manager APIs.Gabriela Moldovan2023-06-204-105/+118
| | | | | | | | This moves the key manager API selection (dummy vs "real" impl) into the `keymgr` module. The module exports the dummy API if the `keymgr` feature is disabled, and the impl from `tor-keymgr` otherwise. Part of #897
* arti-client: Make some of the dummy KeyMgr impls return an error.Gabriela Moldovan2023-06-201-8/+9
| | | | | | `insert` and `remove` should return an error rather than `Ok(())`, as `Ok(())` implies the key was stored/removed, which is impossible in the no-op implementation.
* arti-client: Add more dummy keymgr APIs.Gabriela Moldovan2023-06-201-0/+30
| | | | | | This will help us reduce the number of `#[cfgs(...)]` from `client.rs` Part of #897
* arti-client: Add a result type for the dummy keymgr impl.Gabriela Moldovan2023-06-201-3/+6
| | | | Part of #897
* arti-client: Add an Error type for the dummy key manager.Gabriela Moldovan2023-06-202-7/+15
| | | | Part of #897