summaryrefslogtreecommitdiff
path: root/crates/arti-client
Commit message (Collapse)AuthorAgeFilesLines
...
* arti-client: change test to use path resolver from `TorClientConfig`Steven Engler2024-11-181-6/+12
|
* tor-config-path: remove `Option` from resolver valueSteven Engler2024-11-181-9/+10
|
* arti-client: add path resolver to `TorClient` and `TorClientConfig`Steven Engler2024-11-182-39/+68
| | | | | | Rather than using `arti_client::config::path_resolver()`, third-party code can get the path resolver using `TorClientConfig`s `AsRef<CfgPathResolver>` impl instead.
* arti-client: add a more-comprehensive cfg variable testSteven Engler2024-11-181-10/+35
|
* arti-client: moved two tests from tor-config-pathSteven Engler2024-11-181-0/+20
| | | | Also updated to use the `PATH_RESOLVER` resolver.
* update `CfgPath::path` to use a `CfgPathResolver`Steven Engler2024-11-183-17/+94
| | | | | | | | | | | | | | | | 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.
* tor-ptmgr: pass through the `CfgPathResolver`Steven Engler2024-11-181-0/+2
|
* tor-hsservice: pass through the `CfgPathResolver`Steven Engler2024-11-181-0/+2
|
* cargo: Update `thiserror` to `2`Clara Engler2024-11-121-1/+1
|
* arti-client: add doc comment to `TorClient::reconfigure`Steven Engler2024-11-051-0/+4
|
* Merge branch 'remove-haskind' into 'main'Ian Jackson2024-11-051-1/+3
|\ | | | | | | | | | | | | tor-hscrypto: Abolish the HasKind impl of HsIdParseError. Closes #1483 See merge request tpo/core/arti!2607
| * arti-client: Clarify when BadOnionAddress is returned.Gabriela Moldovan2024-11-041-0/+2
| | | | | | | | | | We only ever return `BadOnionAddress` is we are asked to connect to a .onion address that doesn't parse.
| * tor-hscrypto: Abolish the HasKind impl of HsIdParseError.Gabriela Moldovan2024-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | Also changes the `ErrorKind` of `BadOnionAddress` to `ForbbiddenStreamTarget`. See context in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2246#note_3045683 Closes #1483
* | tor-config: removed re-export of `CfgPath`Steven Engler2024-11-042-1/+3
|/ | | | | Also updated other packages to get `CfgPath` directly from `tor-config-path' instead of 'tor-config'.
* Merge branch 'versions' into 'main'Ian Jackson2024-10-301-27/+27
|\ | | | | | | | | Version bumps for release of 1.3.0 See merge request tpo/core/arti!2599
| * Bump minor versions of crates with new APIs/implsIan Jackson2024-10-301-1/+1
| | | | | | | | | | cargo set-version --bump=patch -p slotmap-careful cargo set-version --bump=patch -p safelog
| * Bump unstable tor-* and arti-* crates to 0.24.0Ian Jackson2024-10-301-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cargo set-version -p tor-async-utils 0.24.0 cargo set-version -p tor-basic-utils 0.24.0 cargo set-version -p tor-bytes 0.24.0 cargo set-version -p tor-cell 0.24.0 cargo set-version -p tor-cert 0.24.0 cargo set-version -p tor-chanmgr 0.24.0 cargo set-version -p tor-checkable 0.24.0 cargo set-version -p tor-circmgr 0.24.0 cargo set-version -p tor-config 0.24.0 cargo set-version -p tor-config-path 0.24.0 cargo set-version -p tor-consdiff 0.24.0 cargo set-version -p tor-dirclient 0.24.0 cargo set-version -p tor-dirmgr 0.24.0 cargo set-version -p tor-error 0.24.0 cargo set-version -p tor-general-addr 0.24.0 cargo set-version -p tor-geoip 0.24.0 cargo set-version -p tor-guardmgr 0.24.0 cargo set-version -p tor-hsclient 0.24.0 cargo set-version -p tor-hscrypto 0.24.0 cargo set-version -p tor-hsrproxy 0.24.0 cargo set-version -p tor-hsservice 0.24.0 cargo set-version -p tor-key-forge 0.24.0 cargo set-version -p tor-keymgr 0.24.0 cargo set-version -p tor-linkspec 0.24.0 cargo set-version -p tor-llcrypto 0.24.0 cargo set-version -p tor-log-ratelim 0.24.0 cargo set-version -p tor-memquota 0.24.0 cargo set-version -p tor-netdir 0.24.0 cargo set-version -p tor-netdoc 0.24.0 cargo set-version -p tor-persist 0.24.0 cargo set-version -p tor-proto 0.24.0 cargo set-version -p tor-protover 0.24.0 cargo set-version -p tor-ptmgr 0.24.0 cargo set-version -p tor-relay-crypto 0.24.0 cargo set-version -p tor-relay-selection 0.24.0 cargo set-version -p tor-rpcbase 0.24.0 cargo set-version -p tor-rtcompat 0.24.0 cargo set-version -p tor-rtmock 0.24.0 cargo set-version -p tor-socksproto 0.24.0 cargo set-version -p tor-units 0.24.0 cargo set-version -p arti-client 0.24.0 cargo set-version -p arti-relay 0.24.0 cargo set-version -p arti-rpc-client-core 0.24.0 cargo set-version -p arti-rpcserver 0.24.0
* | cargo: Run fixup-features (formatting)Ian Jackson2024-10-301-1/+2
| | | | | | | | Manual fixup. I filed #1719 about the fact that I had to do this.
* | cargo: Run fixup-featuresIan Jackson2024-10-301-3/+3
| | | | | | | | | | | | | | This is output from nailing-cargo -Eu run -p fixup-features Cargo.toml There are some formatting glitches which I'll fix in a moment.
* | cargo: Declare [hs-]pow-* experimental everywhere elseIan Jackson2024-10-301-0/+1
|/
* Make memquota feature part of full in arti-clientIan Jackson2024-10-222-3/+4
| | | | Mark it no longer experimental, but part of full. And document it.
* test-all-crates: conditional options, to test more cratesIan Jackson2024-10-221-1/+1
| | | | | | | | | | | | | This new feature lets us provide the "enable these options which are needed to make the tests pass" featrure, which is different for each of the afflicted crates. Then we can test these crates tor-hsservice arti arti-client which minimal features. This will be important in a moment, as we're going to want to be relying on actually minimal features tests in arti cfg.rs.
* Disable a lot of dead code warningsIan Jackson2024-10-172-0/+6
| | | | | | | Now cargo check --workspace --no-default-features --all-targets cargo build -p arti --no-default-features --features=memquota,tokio,native-tls are both clean.
* Merge branch 'mq-feat-1' into 'main'Jim Newsome2024-10-161-1/+1
|\ | | | | | | | | memquota features, preparation See merge request tpo/core/arti!2545
| * Apply `default-features = false` to all tor-memquota depsIan Jackson2024-10-161-1/+1
| | | | | | | | | | | | | | This will allow us to make `tor-memquota/memquota` enabled by default, without forcing it to be compiled in everywhere. I don't change that in this MR, though.
* | Merge branch 'rpc_verb_methods' into 'main'David Goulet2024-10-161-1/+1
|\ \ | |/ |/| | | | | | | | | rpc spec: Start to document method naming convention Closes #1678 See merge request tpo/core/arti!2539
| * RPC: Rename "arti:isolated_client" to "arti:new_isolated_client".Nick Mathewson2024-10-091-1/+1
| | | | | | | | Closes #1678.
* | memquota: Change ToplevelAccount to be an alias for Arc<MemoryQuotaTracker>Ian Jackson2024-10-151-2/+1
| | | | | | | | Fixes a TODO.
* | arti: Make hs-pow a experimental feature.Wesley Aptekar-Cassels2024-10-091-1/+1
| |
* | hs-pow: Refactor to prefer stub types rather than cfg sprawl.Wesley Aptekar-Cassels2024-10-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this design, the thin multiplexing layer between PoW types is always available when onion services are in use, but the specific pow schemes (and their dependency libraries) are gated by crate features everywhere. There are now no new cfg() gates. When the pow-v1 scheme is disabled, we can parse `pow-params v1` lines into an empty type (so clients know a PoW scheme exists that might be supported if they were configured differently). We currently don't save the contents of unknown hsdesc items. On the relaycell side, the hs ext module already sets a strong precedent for keeping unrecognized data as a byte vec, and it doesn't provide a good way to signal soft parse errors like unrecognized optional extensions. There, the `v1` type is completely optional, and services lacking a pow scheme suggested by a client would see one of these 'unrecognized' blobs. This isn't necessarily helpful but it fits the rest of the design. Co-authored-by: Micah Elizabeth Scott <[email protected]>
* | tor-hspow: Big refactor, dissolve this crateWesley Aptekar-Cassels2024-10-091-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | My previous strategy here was to try and centralize hspow in one crate, writing it like a self-contained feature. That introduced friction in the data types, prompting the use of simplistic types at the netdoc/cell layers and full-featured types in the optional modules. This changes tactics, dissolving the low-level parts of tor-hspow into tor-hscrypto and the high-level parts into hsclient/hsservice. Full featured types are used everywhere now, but the tradeoff is that compile-time configurability is a lot more pervasive. Anything that knows about PoW types at all needs to be fully configured out. I took this opportunity to try a more complete set of crate features, allowing users to configure individual PoW schemes. Co-authored-by: Micah Elizabeth Scott <[email protected]>
* | First pass at implementing onion proof-of-work clientWesley Aptekar-Cassels2024-10-091-0/+2
|/ | | | | | | | This adds a module to tor-hspow for version-independent client logic. The entire module and its invocations are disabled unless the new "hs-pow" compile time feature is set. Co-authored-by: Micah Elizabeth Scott <[email protected]>
* arti-client: Fix a broken doc comment.Gabriela Moldovan2024-10-081-1/+1
| | | | | This broke because `tor_keymgr::config::arti` was moved to `tor_keymgr::config`.
* arti-client, tor-keymgr: Remove a couple of now-addressed TODOs.Gabriela Moldovan2024-10-081-1/+0
|
* arti-client: Use the configured C Tor client keystores.Gabriela Moldovan2024-10-081-1/+12
|
* arti-client: Use the configured C Tor keystores, if any.Gabriela Moldovan2024-10-082-4/+23
|
* arti-client: Refactor KeyMgr building logic.Gabriela Moldovan2024-10-081-15/+14
| | | | | | | | This deduplicates the keymgr building logic in preparation for supporting C Tor keystores (building the keymgr in a central place makes things a bit easier, because regardless of the `kind` of the primary keystore, we will need to extend the `KeyMgrBuilder` with the configured secondary `ctor` keystores, if any).
* tor-keymgr: Move config/arti.rs to config.rsGabriela Moldovan2024-10-082-2/+2
| | | | | | | | 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`
* Merge branch 'allow-onion-addrs-default-true' into 'main'gabi-2502024-10-072-3/+3
|\ | | | | | | | | | | | | Default allow_onion_addrs to true. Closes #1402 See merge request tpo/core/arti!2506
| * Default allow_onion_addrs to true.Wesley Aptekar-Cassels2024-10-072-3/+3
| | | | | | | | | | | | | | This was disabled due to lack of vanguard support. Now that we support vanguards, we should enable this by default. Fixes: #1402
* | arti-client: Fix restricted-discovery dependencies.Wesley Aptekar-Cassels2024-10-071-1/+1
| | | | | | | | | | | | | | | | restricted-discovery should require tor-hsservice to be enabled. This previously caused this command to fail: cargo check -p arti-client --features restricted-discovery,vanguards
* | arti-client: Fix incorrect feature gate for onion-service-client.Wesley Aptekar-Cassels2024-10-071-4/+3
|/ | | | | | | | | | Currently, arti-client doesn't compile with just the features experimental-api and onion-service-client enabled, because it incorrectly depends on tor-hsservice. This fixes that by gating the use statement behind the correct feature. Fixes: #1638
* Merge branch 'mq' into 'main'Ian Jackson2024-10-072-0/+7
|\ | | | | | | | | Implement memory quota tracking See merge request tpo/core/arti!2493
| * 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.
| * arti-client: Provide another variant for memquota errorsIan Jackson2024-10-031-0/+5
| | | | | | | | | | | | During startup we'll call a few not-just-at-startup memquota methods which produce tor_memquota::Error, rather than StartupError. So we need a variant for that.
* | Merge branch 'launch-with-hsid-docs' into 'main'gabi-2502024-10-031-0/+8
|\ \ | | | | | | | | | | | | | | | | | | arti-client: Clarify the launch_onion_service_with_hsid() docs. Closes #1626 See merge request tpo/core/arti!2494
| * | arti-client: Clarify the launch_onion_service_with_hsid() docs.Gabriela Moldovan2024-10-031-0/+8
| | | | | | | | | | | | | | | | | | | | | This updates the docs to mention that the specified key may get actually persisted to disk. Closes #1626
* | | Merge branch 'rename-client-auth' into 'main'Ian Jackson2024-10-031-2/+2
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | Use the new "restricted discovery" terminology throughout Closes #1476 See merge request tpo/core/arti!2495
| * | arti-client: Use the new "restricted discovery" terminology.Gabriela Moldovan2024-10-031-2/+2
| |/ | | | | | | Part of #1476
* | CircMgr: Start writing tests.Wesley Aptekar-Cassels2024-10-031-1/+1
| |