| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This will make the output deterministic and enable us to write some
`trycmd` tests in the form of markdown output snippets.
|
| |
|
|
|
|
| |
This actually applies to unrecognized entries too, and besides, most
users aren't going to think in terms of "valid" vs "invalid" entries, so
it's best to omit this qualifier.
|
| | |
|
| |
|
|
|
|
| |
We'll use this to distinguish "not running" from "running",
in order to make it easier to be sure that non-bootstrapping clients
will definitely not try to connect to the network.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
I think this adds unnecessary indirection, and it's a bit confusing to
have two separate keystore entry types (we have `KeystoreEntry` too).
This type exists just to server as a wrapper over the `RawEntryId` of an
unrecognized keystore entry, and the `KeystoreId` of the keystore it was
found in.
This commit folds `RawKeystoreEntry` into `UnrecognizedEntry`, which was
previously a thin wrapper over `RawKeystoreEntry`.
|
| |
|
|
|
|
| |
This is part of rationalizing the structure of TorClient so we can
refactor startup logic, and so that RPC code can reason about object
identity. See #2469.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Out of all the variants in `KeyPathError`, `Unrecognized` is the odd one
out, because unlike the others, which are mainly just lower level
parsing errors, `Unrecognized` is a higher level error constructed in
`KeyMgr::describe()`.
`KeyMgr::describe()` now returns an `Option`, because
* the failure to describe a user provided `KeyPath` may or may not be
an error
* previously, `describe()` would only ever return `Ok` or
`Err(KeyPathError::Unrecognized)`, which essentially a binary
result. Also, `describe()` would never return any of the other
`KeyPathError` kinds, which further suggests `Unrecognized`
doesn't belong there
The `Unrecognized` variant still exists, but is now part of
`KeystoreCorruptionError`, (returned from
`KeyMgr::validate_entry_integrity()`).
|
| |
|
|
| |
This folds `display_arti_entry()` into `display_entry()`.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
This is no longer needed now that `KeyMgr::describe()` works on
`CTorPath`s.
Removing this special handling has the added bonus that the keymgr CLI
output is now uniform for all keystores (before this change, `keys list`
used a slightly different output format for displaying C Tor entries).
The corresponding tests will be updated in a future commit.
|
| |\
| |
| |
| |
| | |
Add `KeyMgr` accessor to `TorClient`
See merge request tpo/core/arti!3442
|
| | |
| |
| |
| |
| |
| | |
`run_check_integrity`
This change simplifies the signature of `run_check_integrity`.
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
and `keystores`
|
| |
|
|
| |
The function now returns `Result<Vec<InvalidKeystoreEntry<'a>>>`
|
| |
|
|
|
|
|
| |
Add a check in `run_check_integrity` to verify that the `expired_entries`
collection is empty after processing all registered keystores. This should
always be true, as all expired entries are expected to be removed during
iteration. If not, it indicates a bug.
|
| |
|
|
|
| |
Replace raw tuples with named structs to reduce type complexity and improve
code clarity and maintainability.
|
| | |
|
| |
|
|
| |
`run_check_integrity`
|
| |
|
|
|
|
| |
- Fix bug where expired keys from one keystore were incorrectly
associated with all keystores
- Remove unnecessary clone
|
| |
|
|
| |
`run_check_integrity`
|
| |
|
|
|
|
| |
- Add `display_invalid_keystore_entries` helper function
`print_check_integrity_incipit`
- Add `display_invalid_keystore_entries` comment
|
| |
|
|
|
|
| |
Add initial functional implementation of `display_invalid_keystore_entries`,
which processes a list of invalid keystore entries grouped by `KeystoreId`
and displays them with associated error messages.
|
| |
|
|
|
|
|
|
|
|
| |
Create the skeletal version of the new `display_invalid_keystore_entries` function
and adapt `run_check_integrity` to use it.
The function now takes a slice of pairs, each containing a `KeystoreId` and a vector
of invalid keystore entries along with their error messages, and processes all
entries internally by iterating over each keystore, instead of being called
once per keystore.
|
| |
|
|
|
|
|
|
|
| |
Previously, the function worked with a flat `Vec<KeystoreEntryResult<KeystoreEntry>>`.
Now, it uses a structured `Vec<(KeystoreId, Vec<KeystoreEntryResult<KeystoreEntry>>)>`,
grouping entries by keystore.
This makes it easier to track which keystore each entry belongs to,
and prepares the code for upcoming improvements.
|
| | |
|
| | |
|
| |
|
|
|
| |
* Update `display_entry` function to handle different `KeyPath` variants
* Add functions `display_arti_entry` and `display_ctor_entry`
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>>>`
|
| | |
|
| |
|