summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | keymgr: Remove redundant field name in struct initGabriela Moldovan2026-01-061-1/+1
| | | | | | | | Fixes a clippy warning.
* | keymgr: Add tests for the unhappy path of from_ctor_path()Gabriela Moldovan2026-01-061-2/+34
| |
* | keymgr: Derive PartialEq for CTorPathErrorGabriela Moldovan2026-01-061-1/+1
| |
* | keymgr: Update tests to use the new d-d macro annotation for CTorPaths (fmt)Gabriela Moldovan2026-01-061-1/+3
| |
* | keymgr: Update tests to use the new d-d macro annotation for CTorPathsGabriela Moldovan2026-01-061-28/+14
| |
* | hsclient, hsservice: Remove no longer needed conversion functionsGabriela Moldovan2026-01-062-87/+1
| |
* | keymgr: Use d-d to generate CTorPath<->KeySpecifier conversionsGabriela Moldovan2026-01-063-29/+57
| |
* | keymgr: Add a CTorKeySpecifier trait (fmt)Gabriela Moldovan2026-01-061-4/+4
| |
* | keymgr: Add a CTorKeySpecifier traitGabriela Moldovan2026-01-062-1/+18
| |
* | keymgr: Make CTorPath more like the client/service specifiers (fmt)Gabriela Moldovan2026-01-066-19/+24
| |
* | keymgr: Make CTorPath more like the client/service specifiersGabriela Moldovan2026-01-068-88/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | This will make it easier to see the correspondence between CTorPaths and the HS client/service key specifiers. Initially, I was hoping this would make it easier to write a d-d macro that automatically derives a `CTorPath` variant (e.g. `HsClientDescEncKeypair`) from the KeySpecifier type name (`HsClientDescEncKeypairSpecifier`), but alas, I don't think d-d can "chop off" name suffixes ("Specifier", in this case). `from_ctor_path()`/`ctor_path()` implementations for converting `CTorPath`s to and from key specifiers.
* | keymgr: Fix some recently broken doc linksGabriela Moldovan2026-01-063-6/+6
| |
* | keymgr: Resolve a handful of clippy warnings (fmt)Gabriela Moldovan2026-01-061-2/+1
| |
* | keymgr: Resolve a handful of clippy warningsGabriela Moldovan2026-01-062-4/+4
| |
* | keymgr: Push error handling into the from_ctor_path() functionsGabriela Moldovan2026-01-064-28/+35
| |
* | keymgr: Replace placeholder errors with CTorPathError (fmt)Gabriela Moldovan2026-01-061-4/+4
| |
* | keymgr: Replace placeholder errors with CTorPathErrorGabriela Moldovan2026-01-063-10/+35
| |
* | keymgr: Remove unused argument in helper function (fmt)Gabriela Moldovan2026-01-061-6/+1
| |
* | keymgr: Remove unused argument in helper functionGabriela Moldovan2026-01-061-3/+1
| | | | | | | | | | Previously, the `arti_path` was needed to build the various `ArtiPath` errors, but that's no longer the case.
* | keymgr: Remove redundant ArtiPath from error context (fmt)Gabriela Moldovan2026-01-061-4/+2
| |
* | keymgr: Remove redundant ArtiPath from error contextGabriela Moldovan2026-01-063-26/+9
| | | | | | | | | | The `ArtiPath` is included in the `KeyPathError::Arti` outer error type, so there is no need to include it in `ArtiPathError` too.
* | keymgr: Split out ArtiPathError from KeyPathError (fmt)Gabriela Moldovan2026-01-061-16/+19
| |
* | keymgr: Split out ArtiPathError from KeyPathErrorGabriela Moldovan2026-01-065-27/+44
| | | | | | | | | | This makes the error handling around `KeyPath`s a bit more sensible, IMO, and it will make it easier to extend it for `CTorPath` errors.
* | keymgr: Make describe_via_components() return BugGabriela Moldovan2026-01-061-1/+1
| | | | | | | | This never returns any other type of error.
* | keymgr: Move Unrecognized errors out of KeyPathError (fmt)Gabriela Moldovan2026-01-061-3/+3
| |
* | keymgr: Move Unrecognized errors out of KeyPathErrorGabriela Moldovan2026-01-066-20/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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()`).
* | keymgr: Fix clippy warning when KeySpecifier is used in tor-keymgrGabriela Moldovan2026-01-061-0/+1
| | | | | | | | | | | | | | | | | | If you try to use this macro within `tor-keymgr` (as we do in the tests), clippy complains about the unreachable catch-all branch for `KeyPath`s (we can't get rid of the catch-all, because outside of `tor-keymgr` KeyPath` is non-exhaustive; but we should probably just go ahead and make `KeyPath` exhaustive at this point, because it's very unlikely it will ever grow new variants).
* | proto: Use describe() unconditionally in validate_entry_integrity()Gabriela Moldovan2026-01-061-12/+5
| | | | | | | | | | `KeyMgr::describe()` now works for `CTorPath`s too, so the key path validation can be the same as for `ArtiPath`s.
* | keymgr: Update expected output in integration testsGabriela Moldovan2026-01-061-6/+6
| | | | | | | | | | C Tor keystore entries now use the same output format as the non-C Tor entries.
* | keymgr: Update test d-d macro with new ctor_path functionsGabriela Moldovan2026-01-061-17/+24
| |
* | arti: Remove no-longer needed helper functionGabriela Moldovan2026-01-061-23/+18
| | | | | | | | This folds `display_arti_entry()` into `display_entry()`.
* | arti: Remove special handling for C Tor keys (fmt)Gabriela Moldovan2026-01-061-4/+1
| |
* | arti: Remove special handling for C Tor keysGabriela Moldovan2026-01-061-40/+2
| | | | | | | | | | | | | | | | | | | | 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.
* | keymgr: Specify ctor conversion functions as moduleGabriela Moldovan2026-01-063-71/+78
| | | | | | | | | | | | | | This is similar to `#[serde(with = "...")]`, and feels a bit nicer than having to specify two separate functions for the conversions (because with two separate functions, you *can* technically only specify one of them, which shouldn't be allowed).
* | keymgr: Extend KeySpecifier macro to support CTorPath conversionsGabriela Moldovan2026-01-063-5/+78
| | | | | | | | | | This enables us to implement `KeyMgr::describe()`, which relies on the ability to extract the key specifier of the key from its `KeyPath`.
* | keymgr: Make parse_key_path() only parse ArtiPathsGabriela Moldovan2026-01-061-18/+23
| | | | | | | | | | | | Unlike `ArtiPath`s, C Tor paths don't need to be parsed, because we have a predefined list of allowed C Tor paths (`CTorPath` is an enum with variants for each supported key type).
* | tor-netdoc: authcert: Fix wrong linkIan Jackson2026-01-061-1/+1
| |
* | tor-netdoc: authcert: Add TODO about constructorsIan Jackson2026-01-061-0/+2
| |
* | tor-netdoc: authcert: rustfmtIan Jackson2026-01-061-5/+5
| |
* | tor-netdoc: authcert: Delete syntax info from rustdocsIan Jackson2026-01-061-37/+2
| | | | | | | | | | This is in the spec. I don't think it is a great idea to duplicate it here.
* | tor-netdoc: authcert: Fix remaining old names/paths in docsIan Jackson2026-01-061-8/+8
| | | | | | | | | | These names came from tmp, and we renamed things as we went, but didn't change the docs everywhere.
* | tor-netdoc: authcert: Improve docs for CrossCertIan Jackson2026-01-061-13/+12
| | | | | | | | Fix the type names while we're here.
* | tor-netdoc: authcert: rename tmp test moduleIan Jackson2026-01-061-1/+1
| | | | | | | | This module is now the "proper" tests for the parse2 impl on AuthCert.
* | tor-netdoc: authcert: abolish tmp module (reindent)Ian Jackson2026-01-061-50/+50
| |
* | tor-netdoc: authcert: abolish tmp moduleIan Jackson2026-01-061-140/+14
| | | | | | | | | | | | | | | | | | | | | | tmp's version of AuthCert is gone. Each of its fields is already in AuthCert, including the docs links. I've decided not to transfer the syntax snippets. The remaining function in that module is now an inherent method on AuthCert, not on tmp's version. This needs reformatting since verify_self_signed is now at the wrong level!
* | tor-netdoc: authcert: derive PartialEq and Eq in testsIan Jackson2026-01-061-0/+1
| | | | | | | | | | It's not clear that we want to expose these impls, but our existing tests (in test::tmp) want them.
* | tor-netdoc: authcert: Transfer spec links into AuthCert from tmpIan Jackson2026-01-061-28/+14
| |
* | tor-netdoc: authcert: derive parse2Ian Jackson2026-01-062-1/+13
| |
* | tor-netdoc: authcert: Add CrossCert to AuthCertIan Jackson2026-01-062-2/+19
| | | | | | | | This will enable parse2 to process it.
* | tor-netdoc: authcert: Move signatures out of tmp (fmt)Ian Jackson2026-01-061-2/+2
| |