summaryrefslogtreecommitdiff
path: root/crates/tor-keymgr/src/mgr.rs
Commit message (Collapse)AuthorAgeFilesLines
* tor-keymgr: Write some KeyMgrBuilder functions by hand.Gabriela Moldovan2023-11-281-16/+57
| | | | | | | Eventually these will need to be auto-generated, but that is not possible right now. Context: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1760#note_2969841
* tor-keymgr: Abolish KeyMgr::new.Gabriela Moldovan2023-11-271-13/+0
| | | | We don't use this now that we have a `KeyMgrBuilder`.
* tor-keymgr: Derive Builder for KeyMgr (fmt).Gabriela Moldovan2023-11-271-8/+11
|
* tor-keymgr: Derive Builder for KeyMgr.Gabriela Moldovan2023-11-271-32/+36
| | | | | | | `KeyMgr` is soon going to have more fields, so now is a good time to derive `Builder` for it. Closes #1114
* tor-keymgr: Apply review suggestions to various doc comments.Gabriela Moldovan2023-11-201-1/+2
|
* tor-keymgr: Add missing backticks.Gabriela Moldovan2023-11-131-2/+2
|
* tor-keymgr: Move module-level docs to KeyMgr.Gabriela Moldovan2023-11-131-13/+13
| | | | The module is private so it won't show up in the public docs.
* tor-keymgr: Clarify how the default/secondary stores are used.Gabriela Moldovan2023-11-131-2/+25
|
* tor-keymgr: Abolish KeyPathPatternSet.Gabriela Moldovan2023-11-131-3/+3
| | | | | | We don't really need it. Closes #1066
* tor-keymgr: Remove derive_meta arg from KeyMgr::list_matching (fmt).Gabriela Moldovan2023-11-021-9/+4
|
* tor-keymgr: Remove derive_meta arg from KeyMgr::list_matching.Gabriela Moldovan2023-11-021-18/+8
| | | | | This addresses the TODO that resulted from this thread https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1677#note_2955700
* tor-keymgr: Rename key_stores to secondary_stores for clarity.Gabriela Moldovan2023-10-241-8/+8
| | | | | | The name `key_stores` was a bit misleading, as this field only contains the _secondary_ key stores (the primary/default key store is stored in a separate field).
* tor-keymgr: list() should include the keys from the default key store.Gabriela Moldovan2023-10-241-2/+1
| | | | | `KeyMgr::list()` was supposed to look in _all_ key stores, not just the secondary ones.
* tor-keymgr: Add tests for get_or_generate.Gabriela Moldovan2023-10-191-0/+63
|
* tor-keymgr: Add KeyMgr::get_or_generate.Gabriela Moldovan2023-10-191-0/+23
|
* tor-keymgr: Add get_or_create_with_derived.Gabriela Moldovan2023-10-191-0/+34
|
* tor-keymgr: Rename KeyPathError to ArtiPathUnavailableError (fmt).Gabriela Moldovan2023-10-191-1/+1
|
* tor-keymgr: Rename KeyPathError to ArtiPathUnavailableError.Gabriela Moldovan2023-10-191-3/+3
|
* tor-keymgr: Add TODO about removing metadata handling from keymgr.Gabriela Moldovan2023-10-191-0/+3
|
* tor-keymgr: Add a get_with_type keymgr function.Gabriela Moldovan2023-10-191-1/+28
|
* tor-keymgr: Add KeyMgr::list_matching for retrieving keys that match a given ↵Gabriela Moldovan2023-10-191-2/+32
| | | | pattern.
* tor-keymgr: Add function for listing all entries in a keystore.Gabriela Moldovan2023-10-191-1/+6
|
* tor-keymgr: Give KeyType an Unknown variant.Gabriela Moldovan2023-10-191-22/+26
|
* tor-keymgr: Use ArtiPathError for invalid ArtiPaths.Gabriela Moldovan2023-10-191-7/+8
|
* tor-keymgr: Make generate_with_derived validate any existing key pairs.Gabriela Moldovan2023-10-091-4/+40
|
* tor-keymgr: Add KeyMgr::generate_with_derived for generating keypairs.Gabriela Moldovan2023-10-091-6/+130
| | | | | | | | | | | | | | | | When generating a keypair, `KeyMgr::generate` inserts a single entry representing the keypair into the keystore. However, for some keypairs, the keystore will need contain a separate entry containing just the public part of the keypair. This commit introduces `KeyMgr::generate_with_derived`, which generates 2 entries in the specified keystore: one for the keypair and another for the public key, which makes it easier to insert keypairs and their corresponding public keys into the keystore without to fall out of sync. Previously, generating a (public, private) keypair involved generating a new keypair with `KeyMgr::generate` and manually inserting the corresponding public key entry.
* tor-keymgr: Factor the generate() function into a separate trait.Gabriela Moldovan2023-10-091-9/+15
| | | | | | `EncodableKey` is a trait for encoding keypairs and public keys. Keygen only makes sense for key_pairs_ (it doesn't make sense for public keys), so it makes sense to move `generate()` out of `EncodableKey`,
* tor-keymgr: Make SshKeyData accessors more idiomatic.Gabriela Moldovan2023-09-261-1/+1
|
* tor-keymgr: Rename as_ssh_keypair_data to as_ssh_key_data.Gabriela Moldovan2023-09-261-2/+2
| | | | | This function no longer returns `KeypairData` (it now returns `SshKeyData`).
* tor-keymgr: Make EncodableKey support public keys too.Gabriela Moldovan2023-09-251-5/+5
| | | | | | | | | Previously, `EncodableKey::to_keypair_data` could only be used for encoding private keys (its return type was `KeypairData`). Now `EncodableKey::to_keypair_data` can return public key data (`KeyData`) too. Note: `to_keypair_data()` will be renamed in a future commit.
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-231-0/+1
|
* tor-keymgr: Re-export ssh-key.Gabriela Moldovan2023-08-161-3/+5
| | | | | | | | | | The `KeypairData` type from [ssh-key] at some point leaked into the keymgr API (via the `EncodableKey` trait). Instead of re-exporting just `KeypairData`, let's re-export the entire `ssh_key` crate (`EncodableKey` implementors would need additional types from `ssh_key` to construct a `KeypairData` object anyway). [ssh-key]: https://crates.io/crates/ssh-key
* keymgr: Replace EncodableKey::to_bytes() with SSH-specific function.Gabriela Moldovan2023-08-021-4/+8
| | | | | | | | | | | The `EncodableKey::to_bytes` function didn't make much sense, because not all keys have a canonical byte representation. This commit replaces `EncodableKey::to_bytes` with `EncodableKey::as_ssh_keypair_data`. In the future, `EncodableKey` will grow functions for encoding keys in other storage formats too. Closes #965
* keymgr: Add TODO regarding generate() being racy.Gabriela Moldovan2023-07-271-0/+3
|
* keymgr: Document the TOCTOU issue with generate().Gabriela Moldovan2023-07-271-0/+16
|
* keymgr: Make the return value of generate() indicate if a new key was created.Gabriela Moldovan2023-07-271-3/+5
|
* keymgr: Make Keystore::generate() return a Result.Gabriela Moldovan2023-07-271-3/+3
|
* keymgr: Move duplicated match block to KeyMgr::select_keystore().Gabriela Moldovan2023-07-241-22/+14
|
* keymgr: Add KeyMgr::generate() for generating new keys.Gabriela Moldovan2023-07-241-1/+69
|
* keymgr: Add function for generating EncodableKeys.Gabriela Moldovan2023-07-241-0/+7
|
* keymgr: Add a Keystore::contains accessor.Gabriela Moldovan2023-07-241-0/+26
|
* keymgr: Use KeystoreId instead of a static string.Gabriela Moldovan2023-07-211-16/+33
|
* keymgr, tor-error: Remove unused error type and HasKind.Gabriela Moldovan2023-07-211-20/+2
|
* keymgr: Use BadApiUsage instead of KeystoreMisuse.Gabriela Moldovan2023-07-211-9/+7
| | | | Trying to use a keystore that doesn't exist is `bad_api_usage!`.
* keymgr: Remove unused KeystoreSelector::All variant.Gabriela Moldovan2023-07-211-28/+0
| | | | | | This also removes the corresponding `KeyMgrError::UnsupportedKeystoreSelector` error, because it's not needed anymore.
* Revert "keymgr: Require callers to be explicit about which keystore to get ↵Gabriela Moldovan2023-07-211-16/+7
| | | | keys from." (fmt)
* Revert "keymgr: Require callers to be explicit about which keystore to get ↵Gabriela Moldovan2023-07-211-33/+22
| | | | | | | | | keys from." This reverts commit 38a6c74c7894dc96b16c9039cacc2a4023977b05. This also updates some tests to make them compile with the reverted version of the code.
* keymgr: Require callers to be explicit about where to remove keys from.Gabriela Moldovan2023-07-201-15/+66
| | | | | As with `KeyMgr::insert`, only `KeystoreSelector::Id` and `KeystoreSelector::Default` are supported.
* keymgr: Add tests for KeyMgr.Gabriela Moldovan2023-07-201-0/+213
|
* keymgr: Require callers to be explicit about which keystore to get keys from.Gabriela Moldovan2023-07-201-6/+19
|