| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| | |
This never returns any other type of error.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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()`).
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| | |
| |
| |
| |
| | |
`KeyMgr::describe()` now works for `CTorPath`s too, so the key path
validation can be the same as for `ArtiPath`s.
|
| | |
| |
| |
| |
| | |
C Tor keystore entries now use the same output format as the non-C Tor
entries.
|
| | | |
|
| | |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| |
| | |
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).
|
| | |
| |
| |
| |
| | |
This enables us to implement `KeyMgr::describe()`, which relies on the
ability to extract the key specifier of the key from its `KeyPath`.
|
| |/
|
|
|
|
| |
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: Replace AuthCert with the version from tmp
See merge request tpo/core/arti!3555
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
This is in the spec. I don't think it is a great idea to duplicate it
here.
|
| | |
| |
| |
| |
| | |
These names came from tmp, and we renamed things as we went, but
didn't change the docs everywhere.
|
| | |
| |
| |
| | |
Fix the type names while we're here.
|
| | |
| |
| |
| | |
This module is now the "proper" tests for the parse2 impl on AuthCert.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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!
|
| | |
| |
| |
| |
| | |
It's not clear that we want to expose these impls, but our existing
tests (in test::tmp) want them.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
This will enable parse2 to process it.
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
We can call this type authcert::CrossCert.
The names in the docs are getting rather wrong, and right now the docs
build produces warnings. We'll tidy all that at the end after we're
done moving and renaming.
|
| | |
| |
| |
| |
| |
| | |
The distinction is: `verify_selfcert` sounds like it only verifies the
self certificate. `veriify_self_signed` completely verifies a
document, albeit one that is expected to be self-signed.
|
| | |
| |
| |
| |
| | |
Let's keep the existing name `AuthCert` in authcert.rs, so we want to
rename this from DirKeyCertificateVersion, while we move it.
|
| | |
| |
| |
| | |
This is our new style. Now there's no known-dead code.
|
| | |
| |
| |
| | |
This will let the parse2 derive work properly.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Make AuthCert look like the network document.
This means removing its stored copy of H(KP_auth_sign_rsa), which it
previously had via the embedded AuthCertKeyIds.
We reculculate it as needed in AuthCert::key_ids().
|
| | |
| |
| |
| | |
There are no in-tree callers.
|
| | |
| |
| |
| |
| | |
AuthCert is about to lose its copy of H(KP_auth_sign_rsa) so it needs
to return an owned value.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
According to the spec we always use this fixed exponent, and we have a
minimum size of 1024. This is checked adhoc in the old parser with
some slight assistance from what is now `RsaPublicParse1Helper`.
It's not clear to me that checking the exponent is actually a good
idea. I think checking the size is probably a bad idea, and if it is
a good idea then 1024 is clearly too short.
But rather than revisit these questions, let's reproduce the old
behaviour in parse2.
In parse2 these checks should be features of the type.
|
| | |
| |
| |
| |
| |
| | |
This is used by the old parsing code, apparently as a thing to hang
the checking methods off. It is confusing to have so many different
RSA types! Let's at least rename this one.
|
| | |
| |
| |
| | |
Spec links from the tmp module will be added later.
|
| | | |
|
| |/ |
|
| |\
| |
| |
| |
| | |
web: Miscallaneous improvements
See merge request tpo/core/arti!3559
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
I think that the `--` separator should go before any arti-specific args,
which includes the arti subcommand.
|
| | |
| |
| |
| | |
This enables experimental features.
|
| | |
| |
| |
| |
| |
| | |
Opinionated changes trying to make it more accurate and less cheesy.
Further changes would be nice, but I'm trying not to go overboard here.
|
| | | |
|