summaryrefslogtreecommitdiff
path: root/crates/tor-keymgr
Commit message (Collapse)AuthorAgeFilesLines
...
* tor-keymgr: Fix cert handling tests.Gabriela Moldovan2025-01-133-25/+64
| | | | | | This updates and reenables the cert management tests. Part of #1768
* tor-keymgr: Use Ed25519Cert::decode to parse the certs.Gabriela Moldovan2025-01-133-4/+17
|
* tor-keymgr: Add cert parse error variant.Gabriela Moldovan2025-01-132-2/+15
| | | | | | | This will soon be used, when we modify the `ArtiNativeKeystore` cert lookup code to actually parse certificates before returning them. Part of #1768
* tor-key-forge: Split out ItemType as a separate trait.Gabriela Moldovan2025-01-133-10/+16
| | | | | | | | This is necessary because `ParsedCert`s will not be `EncodableItem`s. This is because we cannot (and don't want to) write certificates that have not yet been validated to the keystore. They do need to be retrievable from the keystore though, so we also change `ErasedKey` to be `Box<dyn ItemType>` instead.
* tor-key-forge: Distinguish between parsed certs and encodable certs.Gabriela Moldovan2025-01-131-8/+9
| | | | | | | | | | | | | | | We need two different types to represent * certs that have been parsed, but not yet validated (`KeyUnknownCert`) * newly generated encodable certs (`EncodedEd25519Cert`) Currently, we don't use `KeyUnknownCert` anywhere, and instead use `EncodedEd25519Cert` to represent "parsed" but not-yet-validated certs. This approach is wrong and relies on a broken (no-op) `EncodedEd25519Cert::from_bytes` implementation. A future commit will address this problem by replacing `EncodedEd25519Cert::from_bytes` with `Ed25519Cert::decode` to actually parse the cert upon retrieving it from the keystore.
* tor-keymgr: Replace from_encodable_cert with validation function.Gabriela Moldovan2025-01-131-15/+5
| | | | | | | | In practice, we won't be able to obtain an `ToEncodableCert` type from an `EncodableItem` cert without validating it first, so we need to collapse `validate` into `from_encodable_cert`. Part of #1768
* Remove semver.md files after 1.3.2 releaseNick Mathewson2025-01-071-3/+0
|
* Bump versions of internal arti crates for Arti 1.3.2Nick Mathewson2025-01-071-11/+11
| | | | | | | | | | | | | The affected crates follow our regular versioning. They all get bumped to 0.26.0. Done with ``` for crate in $(./maint/list_crates |grep '^arti-\|tor-' ); do cargo set-version --bump minor -p $crate; done ```
* Merge branch 'mod-module-files' into 'main'Nick Mathewson2025-01-071-0/+1
|\ | | | | | | | | clippy: deny `mod_module_files` See merge request tpo/core/arti!2689
| * clippy: deny `mod_module_files`Steven Engler2025-01-061-0/+1
| | | | | | | | | | | | Denies 'mod.rs' files for consistency. https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
* | fix: fix typosDimitris Apostolou2025-01-064-4/+4
|/
* Merge branch 'upgrades' into 'main'Nick Mathewson2025-01-061-1/+1
|\ | | | | | | | | Simple dependency upgrades for upcoming release See merge request tpo/core/arti!2685
| * Upgrade to itertools 0.14.0Nick Mathewson2025-01-061-1/+1
| |
* | Run "fixup-features" in preparation for release.Nick Mathewson2025-01-061-1/+2
|/
* tor-keymgr: Replace internal error with keystore corruption error.Gabriela Moldovan2024-12-042-1/+5
| | | | | This replaces a placeholder error with a concrete `KeystoreCorruptionError` variant.
* tor-keymgr: Add tests for ArtiNativeKeystore's handling of certs.Gabriela Moldovan2024-12-041-1/+29
|
* tor-keymgr: Add support for certs in ArtiNativeKeystore::insert().Gabriela Moldovan2024-12-041-5/+8
|
* tor-keymgr: Add support for certs in ArtiNativeKeystore::get().Gabriela Moldovan2024-12-041-8/+36
| | | | | This makes `ArtiNativeKeystore::get` deserialize the keystore item as a cert, if its `KeystoreItemType` is `Cert`.
* tor-keymgr: Add arti native keystore helper for parsing tor certs.Gabriela Moldovan2024-12-042-0/+42
| | | | | We'll soon use this in `ArtiNativeKeystore`'s `Keystore` implementation for parsing certs read from disk.
* tor-keymgr: Add tests for the new cert mgmt functions.Gabriela Moldovan2024-12-041-1/+172
|
* tor-keymgr: s/TestKey/TestItem in tests.Gabriela Moldovan2024-12-041-55/+55
| | | | | We're about to reuse TestKey as our test key "certificate", so let's preemptively rename it to something more fitting.
* tor-keymgr: Add a test certificate specifier to test_utils.Gabriela Moldovan2024-12-041-1/+34
| | | | This is about to be used in a couple of places.
* tor-keymgr: Note some breaking changes in semver.md.Gabriela Moldovan2024-12-041-0/+3
|
* tor-keymgr: s/key/item in error message test.Gabriela Moldovan2024-12-042-2/+2
|
* tor-keymgr: Rename error variant.Gabriela Moldovan2024-12-043-14/+13
|
* tor-keymgr: Remove unused KeyType import.Gabriela Moldovan2024-12-041-1/+1
|
* tor-keymgr: Add KeyMgr::get_or_generate_key_and_cert.Gabriela Moldovan2024-12-041-0/+119
|
* tor-keymgr: Add KeyMgr::get_key_and_cert() (fmt).Gabriela Moldovan2024-12-041-5/+7
|
* tor-keymgr: Add KeyMgr::get_key_and_cert().Gabriela Moldovan2024-12-043-2/+97
|
* tor-keymgr: Remove no-longer-needed explicit link targets.Gabriela Moldovan2024-12-041-2/+2
| | | | | These aren't needed anymore now that `KeySpecifierComponent` is in scope.
* tor-keymgr: Add helper for building certificate ArtiPaths.Gabriela Moldovan2024-12-043-2/+130
| | | | This will be used for looking up certificates in the keystore.
* tor-keymgr: Split some logic out of KeyMgr::get_from_store().Gabriela Moldovan2024-12-041-6/+24
| | | | | We're soon going to need the "raw" version of the function (the one that returns the key as `K::Key`).
* tor-keymgr: Add variants for missing cert/signing key errors.Gabriela Moldovan2024-12-041-0/+8
| | | | | These will be soon be returned by `KeyMgr::{get_key_and_cert,get_or_generate_key_and_cert}`.
* tor-key-forge: Implement EncodableItem for Tor ed25519 certs.Gabriela Moldovan2024-12-041-3/+3
| | | | | This will enable us to store `tor_cert::EncodedEd25519Cert`s in the keystore.
* tor-keymgr: Replace as_ssh_key_data with as_keystore_item (fmt).Gabriela Moldovan2024-12-043-3/+3
|
* tor-keymgr: Replace as_ssh_key_data with as_keystore_item.Gabriela Moldovan2024-12-044-22/+26
|
* tor-key-forge: Replace EncodableItem::key_type() with item_type() (fmt).Gabriela Moldovan2024-12-041-2/+1
|
* tor-key-forge: Replace EncodableItem::key_type() with item_type().Gabriela Moldovan2024-12-042-19/+19
| | | | | This function now returns a `KeystoreItemType`, enabling us to represent certs as `EncodableItem`s.
* tor-keymgr: Update docs post-renaming.Gabriela Moldovan2024-12-041-9/+9
|
* tor-keymgr: Replace KeyType with KeystoreItemType (fmt).Gabriela Moldovan2024-12-047-21/+70
|
* tor-keymgr: Remove now-unused import.Gabriela Moldovan2024-12-041-1/+1
|
* tor-key-forge: Remove no longer needed KeyType::Unknown variant.Gabriela Moldovan2024-12-041-14/+0
| | | | | Items that have an unrecognized file extension now get mapped to `KeystoreItemType::Unknown`.
* tor-keymgr: Replace KeyType with KeystoreItemType.Gabriela Moldovan2024-12-049-148/+172
| | | | | This is part of the work needed to support storing certificates in the keystore (they won't have a `KeyType`, but rather `CertType`).
* tor-key-forge: Rename EncodableKey to EncodableItem.Gabriela Moldovan2024-12-048-27/+27
| | | | | | | | This is the first step in replacing `EncodableKey` with the new `EncodableItem` trait (see doc/dev/keymgr-certificates.md). (this refactoring is split over multiple commits to make reviewing easier)
* tor-keymgr: Add a KeyCertificateSpecifier trait (fmt).Gabriela Moldovan2024-12-041-3/+2
|
* tor-keymgr: Add a KeyCertificateSpecifier trait.Gabriela Moldovan2024-12-042-0/+28
| | | | This will be used for defining key certificate specifiers.
* add_warnings, *: Allow clippy::needless_lifetimesNick Mathewson2024-12-031-0/+1
| | | | | | | | In 1.83, this warning triggers on many of our crates. We're thinking of fixing them all, but for now, we're going to disable the warning. This is part of #1765.
* Remove semver.md files post-release.Gabriela Moldovan2024-12-021-1/+0
|
* Bump all the unstable tor- and arti- crates to 0.25.0.Gabriela Moldovan2024-12-021-11/+11
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.25.0 done ```
* Bump the versions of the non-{arti-,tor-} crates.Gabriela Moldovan2024-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The non-{arti-,tor-} crates are: ``` ./maint/list_crates | rg -v '^(tor|arti)' oneshot-fused-workaround slotmap-careful test-temp-dir fslock-guard hashx equix caret fs-mistrust safelog retry-error ``` We split them in the following categories: * crates with no changes (no version bumps): ``` maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" | grep -v '\(tor\|arti\)-' oneshot-fused-workaround: No change. test-temp-dir: No change. caret: No change. ``` * crates that only have non-functional changes (bump the patch version): - slotmap-careful - fslock-guard - hashx - equix - fs-mistrust - safelog - retry-error * crates where APIs were broken (bump minor): None The bumps from this commit were created using this script: ``` PATCH=" slotmap-careful fslock-guard hashx equix fs-mistrust safelog retry-error " for crate in $PATCH; do cargo set-version --bump patch -p $crate; done ```