summaryrefslogtreecommitdiff
path: root/crates/arti/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | | arti: Gate the arti hsc subcommand behind a new "hsc" feature.Gabriela Moldovan2024-09-192-12/+4
| | | | | | | | | | | | This new feature is experimental.
* | | arti: Add a subcommand for removing a client discovery key.Gabriela Moldovan2024-09-191-0/+35
| | | | | | | | | | | | Closes #1475
* | | arti: Add an hsc subcommand for rotating client keys.Gabriela Moldovan2024-09-191-0/+65
| | | | | | | | | | | | Part of #1475
* | | arti: Move public key output logic to a separate function.Gabriela Moldovan2024-09-191-4/+13
| | | | | | | | | | | | | | | This will be reused for `arti hsc key rotate`, which also outputs the public key.
* | | arti: Satisfy clippy.Gabriela Moldovan2024-09-181-4/+4
| | |
* | | arti: Add hsc key subcommand, deprecate hsc get-key.Gabriela Moldovan2024-09-181-3/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am deprecating the old `hsc get-key` subcommand in favor of the new `hsc key get` subcommand. This is because I plan to implement the rest of the key management functionality (key deletion, rotation, etc.) as subcommands of the `hsc key` command. The alternative would be to add a new distinct top-level `hsc rotate-key`, `hsc remove-key`, etc. subcommand alongside the existing `hsc get-key` command (which IMO is less nice than the alternative I'm proposing).
* | | arti: Move the keygen-related args to a separate struct.Gabriela Moldovan2024-09-181-9/+17
| | | | | | | | | | | | These will be reused by a future `key rotate` subcommand.
* | | arti: Make sure we check the KeyType before running the command.Gabriela Moldovan2024-09-181-1/+5
| | | | | | | | | | | | | | | Otherwise, if/when we add support for other `KeyType`s we risk forgetting to update the rest of the implementation.
* | | arti: Move the shared arti hsc args to CommonArgs (fmt).Gabriela Moldovan2024-09-181-2/+4
| | |
* | | arti: Move the shared arti hsc args to CommonArgs.Gabriela Moldovan2024-09-181-16/+22
| | |
* | | arti: Move TorClient creation to the top-level (fmt).Gabriela Moldovan2024-09-181-4/+1
| | |
* | | arti: Move TorClient creation to the top-level.Gabriela Moldovan2024-09-181-8/+7
| |/ |/| | | | | | | The client will be used by future subcommands too, not just `prepare_service_discovery_key`.
* | Merge branch 'svc-no-proxy-port' into 'main'David Goulet2024-09-172-14/+36
|\ \ | | | | | | | | | | | | | | | | | | arti: Allow running hidden services with SOCKS/DNS proxying disabled. Closes #1569 See merge request tpo/core/arti!2423
| * | arti: Don't log that we are in SOCKS mode unless socks_listen is set.Gabriela Moldovan2024-09-171-6/+13
| | | | | | | | | | | | If `socks_listen` is disabled, we're not actually running in SOCKS mode.
| * | arti: Allow running hidden services with SOCKS/DNS ports disabled.Gabriela Moldovan2024-09-172-8/+23
| | | | | | | | | | | | Closes #1569
* | | arti: Remove get-key subcommand in favor of onion-name.Gabriela Moldovan2024-09-171-28/+7
| | | | | | | | | | | | | | | | | | | | | | | | The `hss get-key` subcommand is now folded into `onion-name`, which takes a `--generate` argument which specifies whether to generate the key if missing. Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2419#note_3078068
* | | arti: Add CLI for generating an onion service hsid.Gabriela Moldovan2024-09-171-2/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new `hss get-key` subcommand for retrieving and generating service identity keys. The existing `hss onion-name` is now a convenience alias for `hss get-key --generate=no --key-type=onion-name`. Note: I am calling this new subcommand `get-key` for consistency with its client counterpart (`hsc get-key`). Closes #1621
* | | arti: Add an enum for the hss subcommand.Gabriela Moldovan2024-09-172-39/+47
| | | | | | | | | | | | | | | | | | | | | This is needed because we'll soon add an `hss get-key` subcommand for getting and/or generating a service identity key alongside `hss onion-name` (`hss onion-name` will become a convenience around `hss get-key --key-type=onion-name`).
* | | arti: Refactor hss::onion_name() implementation.Gabriela Moldovan2024-09-171-11/+29
| | | | | | | | | | | | | | | This splits `onion_name` into multiple functions (which will be repurposed for the future `hss get-key` implementation).
* | | arti: Move hss onion-name implementation to a separate function.Gabriela Moldovan2024-09-171-29/+41
| | | | | | | | | | | | | | | `hss` will soon sprout another subcommand, so I am preemptively refactoring the `hss onion-name` implementation out of `hss::run()`.
* | | arti: Remove a completed TODO.Gabriela Moldovan2024-09-171-1/+0
|/ / | | | | | | The tests were added in !2275
* | arti: Move proxy subcommand to a separate module.Gabriela Moldovan2024-09-122-41/+42
| | | | | | | | | | | | | | | | No functional changes, this is just code motion. This helps organize the code in `arti/src/lib.rs` a bit. It now only contains the argument parsing and various other setup, and all the subcommands are contained in separate modules.
* | arti: Move arti::run to subcommands::proxy.Gabriela Moldovan2024-09-122-156/+172
| | | | | | | | No functional changes, this is just code motion.
* | arti: Add a new module for the proxy subcommand.Gabriela Moldovan2024-09-122-0/+19
| | | | | | | | | | The implementation for `arti proxy` will soon be relocated to this new module.
* | Merge branch 'rpc_proxy_info_fix' into 'main'Ian Jackson2024-09-121-1/+1
|\ \ | | | | | | | | | | | | rpc: Fix argument type for rpc_session_get_rpc_proxy_info See merge request tpo/core/arti!2409
| * | rpc: Fix argument type for rpc_session_get_rpc_proxy_infoNick Mathewson2024-09-111-1/+1
| | | | | | | | | | | | | | | | | | | | | Without this, we get a panic on startup when running with RPC! (This stresses the need for an integration test for RPC; I will start writing that after the Python wrapper lands.)
* | | arti: Remove onion service anonymity setting.Gabriela Moldovan2024-09-121-7/+0
|/ / | | | | | | We don't support this yet, see #727.
* | Merge branch 'publisher-svc-status' into 'main'David Goulet2024-09-101-1/+15
|\ \ | | | | | | | | | | | | | | | | | | tor-hsservice: Improve descriptor publisher status reporting Closes #1216 and #1572 See merge request tpo/core/arti!2397
| * | tor-hsservice: Log the onion svc status.Gabriela Moldovan2024-09-091-1/+15
| |/ | | | | | | We now log the onion service status on change.
* / Fix a typo in WRONG_PROTOCOL_PAYLOAD.Pier Angelo Vendrame2024-09-101-2/+3
|/
* socksproto: Add a const for suggested buffer length.Nick Mathewson2024-09-091-2/+2
| | | | | Ticket #1509 will probably get rid of this constant, but for now we may as well put it in one place.
* rpc: More specificity surrounding SOCKS-rpc integrationNick Mathewson2024-09-091-2/+25
|
* Suggestion about describing non-RPC behavior of SOCKS protocol from @diziet.Nick Mathewson2024-09-091-1/+3
|
* arti/rpclib: Tweak proxy_info format.Nick Mathewson2024-09-092-2/+4
| | | | | | | Renamed address to tcp_address, and made it optional, so that later we can have a unix_path, etc. On deser side, add support for unrecognized listener types.
* arti/rpclib: Lowercase our socks5 listener variant.Nick Mathewson2024-09-091-0/+1
|
* arti: Add a comment explaining how RPC and SOCKS interactNick Mathewson2024-09-091-0/+181
| | | | | | | | | This belongs in a spec, but adding things to a spec is slow and fraught. Instead we'll put it here for now and move it later. There are some XXXXs about "finalizing" the design that we need to resolve before we can merge !2373 and implement stream creation in `arti-rpc-client-core`.
* arti: add and document get_rpc_proxy_info method.Nick Mathewson2024-09-091-2/+38
| | | | | | | | Currently this behaves the same as get_proxy_info, but this may change in the future, if we introduce RPC-unsuitable proxy ports. (Also rename the get_proxy_info method to avoid x_ prefix.)
* arti: Temporarily disable a flaky test.Ian Jackson2024-09-051-0/+1
| | | | | | | | This effectively reverts 71e3d52f5aeb34ca7bca80053079a8c7505b99ac, which was itself a revert of disabling this test the first time. Sadly it still doesn't seem to be reliable. We have agreed on IRC to disable it for now.
* Merge branch 'slow-test' into 'main'Ian Jackson2024-09-051-2/+15
|\ | | | | | | | | | | | | arti: Make the config watcher debounce interval configurable. Closes #1589 See merge request tpo/core/arti!2387
| * arti: Make the config watcher debounce interval configurable (fmt).Gabriela Moldovan2024-09-041-1/+9
| |
| * arti: Make the config watcher debounce interval configurable.Gabriela Moldovan2024-09-041-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | Previously, the `reload_cfg::test::watch_multiple` test would take about 3s to run. This test modifies 3 files and waits for the corresponding `reconfigure()` events to fire. Because of the `sleep(DEBOUNCE_INTERVAL)` in `run_watcher`, it would wind up waiting for about 1s for each of them. This makes the event debouncing optional, and disables it in the tests. Closes #1589
* | Merge branch 'reload-cfg-test' into 'main'David Goulet2024-09-041-2/+4
|\ \ | |/ |/| | | | | | | | | arti: Write the test config atomically. Closes #1549 See merge request tpo/core/arti!2375
| * Revert "arti: Temporarily disable a flaky test."Gabriela Moldovan2024-08-291-1/+0
| | | | | | | | This reverts commit ececf6be2eaffc201666cd3413dc19c025be66de.
| * arti: Write the test config atomically.Gabriela Moldovan2024-08-291-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | The flakiness from the `watch_single_file` test was caused by the race between the config write, and the fake SIGHUP "signal" sent on `sighup_tx`: sometimes, the sighup would get handled between creating the config file and writing its contents. In those cases, the config received in `TestModule::reconfigure` would be `Default::default()`, which caused an assertion to fail (because the test is expecting to receive the `ArtiConfig` it wrote to disk). Closes #1549
* | Provide a MemoryQuotaTracker in TorClientIan Jackson2024-09-041-1/+0
| | | | | | | | Nothing uses this yet.
* | arti: Proper testing of the memory limit config parsingIan Jackson2024-09-041-2/+53
| | | | | | | | | | | | Including testing that uncommenting the example generates a config with tracking enabled, and that the example low_water is the default value for the example max.
* | arti cfg tests: Provide resolve_return_resultsIan Jackson2024-09-041-0/+6
| |
* | arti cfg tests: strip_prefix: Leave section markers unchangedIan Jackson2024-09-041-1/+6
| |
* | arti cfg tests: strip_prefix: Document error behaviourIan Jackson2024-09-041-1/+3
| |
* | Look for memquota configuration in the TorClient configurationIan Jackson2024-09-042-1/+39
| | | | | | | | Tests are not entirely trivial and will come in a moment.