| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
Update code for Edition 2024 (second attempt)
Closes #2101
See merge request tpo/core/arti!3137
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
First, run
```
git grep -l "^edition =" |
xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```
Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.
Third, run cargo fmt again.
|
| |/
|
|
|
| |
* Update `display_entry` function to handle different `KeyPath` variants
* Add functions `display_arti_entry` and `display_ctor_entry`
|
| |
|
|
| |
Closes #2012.
|
| | |
|
| |
|
|
|
| |
* arti: raw: `remove-by-path` is now `remove-by-id`
* arti: raw: Adjust integration tests
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* CLI: Add `keys-raw` and subcommand `remove-by-path`
* arti: Add `arti::subcommand::raw` for the CLI `keys-raw`
* tor-keymgr: Add `ArtiNativeKeystoreError::UnexpectedRawEntry`,
`ArtiEphemeralKeystoreError::NotSupported`
* tor-keymgr: Add `tor-keymgr::raw` module
* tor-keymgr: Add `Keystore::remove_unchecked`
* tor-keymgr: Change `Keystore::list` to return `KeystoreEntry`
* tor-keymgr: Add field `KeystoreEntry::raw_id`
* doc: Update keys.md
* doc: Add raw.md
* tor-keymgr: BREAKING: `UnrecognizedEntryError::new` associated
function is now only accessible within the crate `tor-keymgr`
* tor-keymgr: BREAKING: `UnrecognizedEntryId` is renamed to
`UnrecognizedEntry`
* tor-keymgr: BREAKING: `KeyMgr::list()` and `Keystore::list()`
now return `Result<Vec<KeystoreEntryResult<KeystoreEntry>>>`
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
New cargo feature `metrics`, currently experimental.
New config option `metrics.prometheus.listen`. Uses standard `Listen`
syntax, but not every configuration is supported due to upstream
limitations.
If the config option is set, use metrics-exporter-prometheus to offer
an HTTP scrape endpoint. Or, if compiled out, fail.
Currently there are no actual metrics exported at all.
|
| |\
| |
| |
| |
| |
| |
| | |
hsc: remove onion-address flag in favour of stdin
Closes #1630
See merge request tpo/core/arti!2861
|
| | | |
|
| | |
| |
| |
| |
| | |
* Add `quite` to the common arguments
* Substitute dialoguer in favor of `read_line` in `get_onion_address`
|
| | | |
|
| | |
| |
| |
| |
| | |
* The user will be prompted interactively for the onion-address
to prevent onion-address leaking in shell history
|
| |\ \
| |/
|/|
| |
| | |
arti: hsc-key-get: Print LF after discovery key
See merge request tpo/core/arti!2856
|
| | |
| |
| |
| |
| | |
Did not print a newline after service discovery key. Looked bad.
Prints newline now. Looks better.
|
| |/ |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Introduce ToplevelRuntime as an alias, and use it in the top-level
programs.
Now none of the principal protocol implementation code has access to
the executor's toplevel entrypoint, and can't call it by mistake.
|
| |
|
|
|
|
| |
Formerly this was a conditional method argument, which is a huge
antipattern. Now it is unconditionally present, as `Option<T>` for
a type that is uninhabited when RPC isn't supported.
|
| | |
|
| |
|
|
|
|
| |
Rather than using `arti_client::config::path_resolver()`, third-party
code can get the path resolver using `TorClientConfig`s
`AsRef<CfgPathResolver>` impl instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Previously, arti's primary keystore was referred to as its "default"
keystore. However, "default" is inaccurate here: there is no way to
meaningfully override this "default" (the "default" store acts as the
main keystore). Throughout the codebase, we query all keystores for keys
(including the secondary ones), but only ever write to the
default/primary keystore. This is OK for now, because it enables us to
have one mutable keystore, and multiple secondary, read-only stores.
|
| |
|
|
| |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2435#note_3080452
|
| | |
|
| |
|
|
| |
Closes #1475
|
| |
|
|
| |
Part of #1475
|
| |
|
|
|
| |
This will be reused for `arti hsc key rotate`, which also outputs
the public key.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
| |
These will be reused by a future `key rotate` subcommand.
|
| |
|
|
|
| |
Otherwise, if/when we add support for other `KeyType`s we risk
forgetting to update the rest of the implementation.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
The client will be used by future subcommands too, not just
`prepare_service_discovery_key`.
|
| |\
| |
| |
| |
| |
| |
| | |
arti: Allow running hidden services with SOCKS/DNS proxying disabled.
Closes #1569
See merge request tpo/core/arti!2423
|
| | |
| |
| |
| | |
If `socks_listen` is disabled, we're not actually running in SOCKS mode.
|
| | |
| |
| |
| | |
Closes #1569
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| | |
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`).
|
| | |
| |
| |
| |
| | |
This splits `onion_name` into multiple functions (which will be
repurposed for the future `hss get-key` implementation).
|