summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | tor-hsservice: Remove unnecessary docsrs cfg_attr.Gabriela Moldovan2024-08-071-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | The module is correctly documented as "only available on crate feature restricted-discovery" without it.
| * | | | tor-hsservice: Add comments about the cfg_attrs around restricted_discovery.Gabriela Moldovan2024-08-071-0/+3
| | | | |
| * | | | tor-hsservice: Add missing docsrs cfg to restricted_discovery module.Gabriela Moldovan2024-08-061-0/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without it, if the `restricted-discovery` feature is compiled out, the module gets documented as: ``` Non-restricted-discovery (Available on non-crate feature `restricted-discovery` only) ``` which is inaccurate.
* | | | Merge branch 'ahf/pt-status-ignore-transport' into 'main'Nick Mathewson2024-08-061-17/+13
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Don't require TRANSPORT for PT STATUS messages. See merge request tpo/core/arti!2307
| * | | Add test for PtStatus containing TRANSPORT field.Alexander Færøy2024-08-011-0/+10
| | | | | | | | | | | | | | | | See: tpo/core/arti#1488.
| * | | Don't require TRANSPORT for PT STATUS messages.Alexander Færøy2024-08-011-18/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes the PT STATUS handler to not require the presence of the `TRANSPORT` field in the K/V line. This matches current behaviour of C Tor and was requested by the Anti-censorship Team at an earlier point to enable STATUS messages to work for situation where it's not transport specific messages. To avoid future issues, we simply ignore any required keys right now even though TYPE is to be expected. See: tpo/core/torspec#267 See: tpo/core/torspec!63 See: tpo/core/arti#1488
* | | | Merge branch 'arti-client-auth-tests' into 'main'gabi-2502024-08-051-0/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | shadow test: Add tests for restricted discovery hidden services See merge request tpo/core/arti!2272
| * | | | tor-hsservice: Add an extra log in the descriptor publisher.Gabriela Moldovan2024-08-051-0/+4
| | | | | | | | | | | | | | | | | | | | This helped me debug some shadow test failures.
* | | | | Merge branch 'rpc-reencoding' into 'main'Nick Mathewson2024-08-055-93/+187
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | rpc-client-core: Always re-encode requests and responses, and preserve unrecognized struct fields. Closes #1491 See merge request tpo/core/arti!2312
| * | | | rpclib: Apply serde(default) to RpcMeta::updates.Nick Mathewson2024-08-051-0/+1
| | | | | | | | | | | | | | | | | | | | This enable a `meta` object to have no `updates` field set.
| * | | | rpclib: re-encode responses from arti, and preserve fields.Nick Mathewson2024-08-041-60/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to re-encode responses to avoid possible mismatch between how arti-rpc-client-core parses messages and how the user application parses messages. (In theory this shouldn't be necessary so long as arti-rpc-client-core and arti have the same json implementation, and arti-rpc-client-core is only used for talking to arti. But those assumptions might change in the future.) Closes #1491. We want to preserve fields so that, if Arti adds any new elements to response or error in the future, and the client knows about them, they won't be lost simply because arti-rpc-client-core hasn't heard of them.
| * | | | rpclib: preserve unrecognized request fieldsNick Mathewson2024-08-042-6/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When writing a request, we want to keep any fields that we don't recognize, in case the application (and arti) know about some field that we haven't heard of.
| * | | | rpclib: Split ParsedRequest and Request types.Nick Mathewson2024-08-043-27/+58
| | |/ / | |/| | | | | | | | | | (They are about to diverge even further.)
* | | | arti: Add the restricted_discovery configuration to the example config.Gabriela Moldovan2024-08-052-9/+94
| | | | | | | | | | | | | | | | This also adds a test for it.
* | | | tor-hsservice: Fix broken doc links in RestrictedDiscoveryConfig.Gabriela Moldovan2024-08-051-6/+4
| | | |
* | | | tor-hsservice: Rewrite read_keys impl to be more functional.Gabriela Moldovan2024-08-051-21/+11
| | | |
* | | | tor-hsservice: Use DirEntry::file_name to simplify key file reading logic.Gabriela Moldovan2024-08-051-19/+14
| | | |
* | | | tor-hsservice: Reduce code duplication in restricted mode tests.Gabriela Moldovan2024-08-051-6/+3
| | | |
* | | | tor-hsservice: Give static_keys precedence over key_dirs (fmt).Gabriela Moldovan2024-08-053-16/+8
| | | |
* | | | tor-hsservice: Give static_keys precedence over key_dirs.Gabriela Moldovan2024-08-052-32/+100
| | | | | | | | | | | | | | | | | | | | This rewrites `RestrictedDiscoveryConfig::read_keys` to give `static_keys` precedence over the keys from `key_dirs`.
* | | | tor-hsservice: Do not error if there are more than ↵Gabriela Moldovan2024-08-053-93/+24
| | | | | | | | | | | | | | | | | | | | | | | | MAX_RESTRICTED_DISCOVERY_CLIENTS. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2266#note_3051758
* | | | tor-hsservice: Add a note about live updates.Gabriela Moldovan2024-08-051-0/+7
| | | |
* | | | tor-hsservice: Use the configured authorized clients when encrypting the ↵Gabriela Moldovan2024-08-055-8/+49
| | | | | | | | | | | | | | | | descriptor.
* | | | tor-hsservice: Remove unused import from internal prelude.Gabriela Moldovan2024-08-051-1/+0
| | | | | | | | | | | | | | | | | | | | The base64ct dependency is now unused in tor-hsservice, so we should consider removing it at some point.
* | | | tor-hsservice: Remove unused config types.Gabriela Moldovan2024-08-052-79/+1
| | | |
* | | | tor-hsservice: Store the client keys in RunningOnionService.Gabriela Moldovan2024-08-052-0/+41
| | | |
* | | | tor-hsservice: Use restricted config option in OnionServiceConfig.Gabriela Moldovan2024-08-051-13/+30
| | | |
* | | | tor-hsservice: Add restricted discovery configuration.Gabriela Moldovan2024-08-056-3/+919
| | | |
* | | | arti: Avoid using the now-deprecated arti_client constant.Gabriela Moldovan2024-08-051-2/+2
| | | | | | | | | | | | | | | | We can just used `build_for_arti()` here.
* | | | arti-client: Move BuilderExt to tor-config.Gabriela Moldovan2024-08-053-23/+35
| | | | | | | | | | | | | | | | | | | | `BuilderExt` will soon be used in tor-hsservice too (for configuring the mistrust settings of the client "restricted mode" authorization keys).
* | | | tor-hscrypto: Implement Eq for HsClientDescEncKey.Gabriela Moldovan2024-08-051-0/+2
| | | | | | | | | | | | | | | | Needed because such keys will be stored in the `OnionServiceConfig`.
* | | | tor-hsservice: Add a restricted-discovery feature.Gabriela Moldovan2024-08-054-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Restricted discovery mode is initially going to be gated behind the experimental `restricted-discovery` feature. Part of #1292
* | | | tor-hsservice: Remove extraneous whitespace.Gabriela Moldovan2024-08-051-2/+2
| | | |
* | | | doc: Add arti hsc subcommand docs to doc/hsc.md.Gabriela Moldovan2024-08-051-28/+1
| | | | | | | | | | | | | | | | | | | | This also makes the `tests/testcases/hsc/hsc.md` test case a symlink to `doc/hsc.md`.
* | | | arti: Update the hsc markdown test.Gabriela Moldovan2024-08-051-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a bit more information to `hsc.md`. Note: `hsc.md` is currently just a test case for the CLI tests. A future commit promote it to module-level README.
* | | | Merge branch 'typo-fix-1' into 'main'Ian Jackson2024-08-051-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Fix a pair of typos in an ffi comment. See merge request tpo/core/arti!2310
| * | | | Fix a pair of typos in an ffi comment.Nick Mathewson2024-08-031-2/+2
| |/ / /
* | | | Merge branch 'ticket_1501_errno' into 'main'Nick Mathewson2024-08-053-8/+69
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ffi: Expose errno from errors that have it. Closes #1501 See merge request tpo/core/arti!2311
| * | | | ffi: Expose OS error field.Nick Mathewson2024-08-031-2/+23
| | | | | | | | | | | | | | | | | | | | Closes #1501.
| * | | | ffi: Store the os error code in FfiError.Nick Mathewson2024-08-031-0/+40
| | | | | | | | | | | | | | | | | | | | (This is an errno or a GetLastError.)
| * | | | rpc-client-core: Add thiserror #[source] annotationsNick Mathewson2024-08-032-7/+7
| |/ / / | | | | | | | | | | | | | | | | This will make error outputs more usable, and will make it possible to expose OS error codes.
* / / / arti: Elide the -c help in the expected output of the CLI tests.Gabriela Moldovan2024-08-051-2/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The help output of the `-c ` option includes some local paths, which can be quite long on some platforms, spanning over multiple lines. This causes the CLI tests to fail, because they expect each of the paths from the `-c` help to fit on a single line. To fix this, we can use `trycmd`'s `...` to match as many lines as needed. Closes #1509
* | | Merge branch 'hss-nickname-error' into 'main'gabi-2502024-08-022-4/+7
|\ \ \ | | | | | | | | | | | | | | | | Have `arti hss onion-name` error if it doesn't print the onion name See merge request tpo/core/arti!2305
| * | | Have `arti hss onion-name` error if it doesn't print the onion nameKunal Mehta2024-08-012-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two error cases where the onion name isn't printed, but previously returned `Ok(())`. It now returns an error to exit with a non-zero status code.
* | | | Merge branch 'use-unordered-futures-rebased' into 'main'Jim Newsome2024-08-017-144/+1109
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | tor-proto::circuit::StreamMap: Use StreamPollSet See merge request tpo/core/arti!2285
| * | | tor-proto: Remove circuit reactor's outbound bufferJim Newsome2024-08-011-71/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer need this. StreamMap now supports handling only one outgoing message at a time while ensuring no streams starve, so we no longer ever pull messages out of the map when we're not actually ready to send them.
| * | | tor-proto::circuit::StreamMap: Use StreamPollSetJim Newsome2024-08-014-76/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Refactors `StreamMap` to use `StreamPollSet` to manage its receivers for mpsc streams. * Extends `StreamMap` to support iterating only over streams that have a pending outgoing message, and in round-robin order. * Updates `circuit::reactor::Reactor` to use this functionality. It now iterates only over streams that have a ready outgoing message, and only actually "pops" a message that is ready to be sent. This mildly simplifies the circuit reactor, but more importantly clears the way to: * Remove the "outbound queue" of messages that were pulled from stream channels but that we couldn't send yet due to congestion control. * Support opportunistic packing when preparing to send a relay message. (proposal 340). * Refactor the circuit reactor's `run_once` into futures that we can `select!` over.
| * | | Add StreamPollSetJim Newsome2024-08-012-0/+603
| | | |
| * | | Add KeyedFuturesUnorderedJim Newsome2024-08-012-0/+367
| |/ /
* / / Remove semver.md files post-release.Nick Mathewson2024-08-013-3/+0
|/ /