summaryrefslogtreecommitdiff
path: root/crates/tor-keymgr/semver.md
Commit message (Collapse)AuthorAgeFilesLines
* keymgr: Remove old has_certificate() optionGabriela Moldovan2026-03-121-0/+1
| | | | This was replaced by the new `CertSpecifier` d-d macro.
* meta: Remove all semver.md files post-releaseClara Engler2026-01-131-5/+0
| | | | | Fix the conflict in tor-netdoc/semver.md by hand, including the new entries already landed since v1.9.0.
* keymgr: Make CTorPath more like the client/service specifiersGabriela Moldovan2026-01-061-0/+2
| | | | | | | | | | | | | 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: Split out ArtiPathError from KeyPathErrorGabriela Moldovan2026-01-061-0/+1
| | | | | 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: Move Unrecognized errors out of KeyPathErrorGabriela Moldovan2026-01-061-0/+2
| | | | | | | | | | | | | | | | | | | | | 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()`).
* Remove semver.md files, post-release.Ian Jackson2025-08-051-5/+0
|
* arti: keys: Add arti keys-rawhjrgrn2025-07-141-0/+5
| | | | | | | | | | | | | | | | | | | * 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>>>`
* release: Delete semver.md files after release.Alexander Hansen Færøy2025-06-051-3/+0
|
* tor-keymgr: BREAKING: Refactor API: Keystore::listhjrgrn2025-05-301-0/+3
| | | | | * Change return type `Result<Vec<(KeyPath, KeystoreItemType)>>` if favor of `Result<Vec<StdResult<(KeyPath, KeystoreItemType), UnrecognizedEntryError>>>`
* release: Bump all unstable tor/arti crates to 0.30.0Wesley Aptekar-Cassels2025-05-011-3/+0
| | | | | | | | ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.30.0 done ```
* tor-keymgr: BREAKING: Refactor API: Keystore::insertplaybahn2025-04-021-0/+3
| | | | | | Drop redundant/unused param item_type: &KeystoreItemType from keystore::Keystore::insert. Method now uses param key: &dyn EncodableItem to obtain a KeystoreItemType
* Remove semver.md files after 1.3.2 releaseNick Mathewson2025-01-071-3/+0
|
* tor-keymgr: Note some breaking changes in semver.md.Gabriela Moldovan2024-12-041-0/+3
|
* Remove semver.md files post-release.Gabriela Moldovan2024-12-021-1/+0
|
* tor-keymgr: Remove a couple of dummy KeyMgr functions.Gabriela Moldovan2024-11-141-0/+1
| | | | | | | These are not actually needed anywhere. In fact, it's a bad idea to have them in the first place (see the comment from the dummy `KeyMgr` impl block).
* Remove obsolete semver files post 1.3.0 releaseIan Jackson2024-10-311-8/+0
|
* tor-keymgr: Rename KeyPathRange to ArtiPathRange.Gabriela Moldovan2024-10-081-0/+1
| | | | | This is only used for representing portions of `ArtiPath`s, so let's rename it accordingly.
* tor-keymgr: Implement KeyPath::matches for CTorPaths.Gabriela Moldovan2024-10-081-0/+1
| | | | | | | `KeyPath::matches` now returns a boolean (because we can't return a matching "range" for `CTorPaths`, because unlike ArtiPaths, they're not represented as `String`s, and do not have variable parts that need to be captured).
* tor-keymgr: Reimagine CTorPath as an enum.Gabriela Moldovan2024-10-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | C Tor's client restricted discovery keys don't have the service hsid encoded in the filename (the hsid of the service each key is associated with is encoded in contents of the key file). This means that given a key specifier like `HsClientDescEncKeypairSpecifier` (which is a wrapper over an HsId), we can't actually compute the relative path of the key in its `KeySpecifier::ctor_path()` implementation. To do so we would need to access the keystore to figure out which path contains the requested HsId, which we can't (and shouldn't!) do from within the `KeySpecifier` impl. This suggests the String newtype (representing a relative path) we previously had is not a good abstraction for `CTorPath`s. Moreover, `CTorPath` are static (they don't have dynamic components like `ArtiPath`), so it makes more sense to model `CTorPath` as an enum. The new `CTorPath::ClientHsDescEncKey(HsId)` variant will be used to instruct the C Tor client keystore to find the file that contains the specified `HsId`, while the `Service` variant will be used for hidden service keys.
* tor-keymgr: Move config/arti.rs to config.rsGabriela Moldovan2024-10-081-0/+4
| | | | | | | | The config will soon contain secondary C Tor keystore configuration too, so the `arti` namespacing is about to stop making sense. I recommend reviewing this commit using `git diff --color-moved=zebra --ignore-space-change`
* Remove semver.md files from 1.2.8Nick Mathewson2024-09-301-3/+0
|
* tor-keymgr: Add back ArtiKeystoreConfig::is_enabled().Gabriela Moldovan2024-09-231-1/+0
| | | | | I am adding `is_enabled()` back because I plan to un-deprecate the `enabled` setting.
* tor-keymgr: Rename the primary keystore for clarity.Gabriela Moldovan2024-09-231-0/+2
| | | | | | | | | | Previously, arti's primary keystore was referred to as its "default" keystore. However, "default" is inaccurate here: there is no way to meaningfully override this "default" (the "default" store acts as the main keystore). Throughout the codebase, we query all keystores for keys (including the secondary ones), but only ever write to the default/primary keystore. This is OK for now, because it enables us to have one mutable keystore, and multiple secondary, read-only stores.
* tor-keymgr: added support for specifying keystore kind to ArtiKeystoreConfigMorgan2024-09-201-0/+1
|
* tor-keymgr: renamed ArtiNativeKeystoreConfig to ArtiKeystoreConfigMorgan2024-09-201-0/+1
|
* Remove semver.md files post-release.Nick Mathewson2024-08-011-1/+0
|
* Update to derive-deftly 0.12.1Ian Jackson2024-06-171-0/+1
| | | | | | * Bump in Cargo.toml * Deal with `${Xmeta as ...}` incompatible change, by always specifying an `as`, and changing `as tokens`.
* Remove semver.md files from arti 1.2.0 release.Gabriela Moldovan2024-03-041-16/+0
|
* tor-keymgr: Note removal of dummy KeyMgrBuilderError in semver.md.Gabriela Moldovan2024-02-281-0/+1
|
* arti, arti-client, tor-keymgr: Remove keystore dir configuration.Gabriela Moldovan2024-02-211-0/+1
| | | | Closes #1202
* tor-keymgr: Make InvalidKeyPathComponentValue public.Gabriela Moldovan2024-02-191-0/+1
| | | | | It appears within the public API (it is the error type returned from `KeySpecifierComponent`), so let's make it public.
* tor-keymgr: Include the ArtiPath in InvalidKeyPathComponentValue.Gabriela Moldovan2024-02-191-0/+1
| | | | | | The offending `ArtiPath` should be included in the error. Part of #1115
* tor-keymgr: Rename {to,from}_component to {to,from}_slug.Gabriela Moldovan2024-02-191-0/+1
| | | | | | | | | Originally, these functions converted to and from `ArtiPathComponent`. In !1931, we replaced `ArtiPathComponent` with `Slug` without renaming the conversion functions. Since we're converting to and from `Slug` now, I think it makes sense to rename them too. Part of #1115
* tor-keymgr: Replace KeyMgr::get_with_type with KeyMgr::get_entry.Gabriela Moldovan2024-02-191-0/+2
| | | | Part of #1271
* tor-keymgr: Rename KeyMgr::remove_with_type to KeyMgr::remove_entry.Gabriela Moldovan2024-02-191-1/+2
| | | | Part of #1271
* tor-keymgr: Make KeyMgr::remove_with_type take a KeystoreEntry.Gabriela Moldovan2024-02-191-0/+1
| | | | | | | NB: `KeyMgr::remove_with_type` will need to be renamed to `KeyMgr::remove_entry`. Part of #1271
* tor-keymgr: Make KeyMgr::list_matching return `KeystoreEntry`s.Gabriela Moldovan2024-02-191-0/+1
| | | | Part of #1271
* tor-keymgr: Add KeystoreEntry.Gabriela Moldovan2024-02-191-0/+1
| | | | | | | | | | This type will soon replace `(KeyPath, KeyType)` in `KeyMgr::list_matching`. The KeystoreEntry documentation mentions a couple of functions that don't exist right now (they will be added in a subsequent commit). Part of #1271
* tor-keymgr: Make KeyMgr::remove return the removed key.Gabriela Moldovan2024-02-051-0/+1
| | | | Part of #1115
* tor-keymgr: Make KeyMgr::insert return the old key.Gabriela Moldovan2024-02-051-0/+1
| | | | Part of #1115
* tor-keymgr: Rename KeyInfoExtractor to KeyPathInfoExtractor.Gabriela Moldovan2024-02-051-0/+2
| | | | | | This trait extracts a `KeyPathInfo`, not a `KeyInfo`. Part of #1115
* tor-keymgr: Derive getters for KeyPathInfo.Gabriela Moldovan2024-02-051-0/+1
| | | | Part of #1115
* Remove all semver.md files to start a fresh release roundIan Jackson2024-02-051-4/+0
|
* tor-keymgr: Add error variant for when a key shouldn't exist.Gabriela Moldovan2024-02-011-0/+1
| | | | | | | This will be returned by `KeyMgr::generate` if the key to be generated already exists and `overwrite` is `false`. Part of #1074
* tor-keymgr: Abolish ArtiPathComponent.Gabriela Moldovan2024-01-311-0/+1
| | | | | | `ArtiPathComponent`s are really just `Slugs`. Part of #1193, #1092
* tor-keymgr: Abolish ArtiNativeKeystoreConfig::expand_keystore_dir.Gabriela Moldovan2024-01-101-0/+2
| | | | | | This resolves a `TODO HSS` in arti-client. Part of #1187
* Remove semver.md files now that 1.1.9 is out.Nick Mathewson2023-10-021-6/+0
|
* tor-keymgr: Add (experimental) notices to semver.mdGabriela Moldovan2023-09-251-6/+6
|
* tor-hsclient, arti-client, tor-keymgr, tor-netdoc: Use a keypair instead of ↵Gabriela Moldovan2023-09-251-0/+6
| | | | | | | | | | | | | StaticSecret. Previously, when retrieving `KS_hsc_desc_enc` keys (or any other x25519 keys) from the keystore, the keymgr would discard the public part of the key (SSH private keys contain the public part of the key too). Instead of discarding the public key and returning just the `StaticSecret`, the keymgr now returns a `StaticKeypair`. This makes the x25519 `EncodableKey`/`ToEncodableKey` implementation consistent with the ed25519 one (which retrieves key pairs rather than "unescorted" secrets).
* Remove semver.md now that 1.1.8 is out.Nick Mathewson2023-09-051-9/+0
|