<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-keymgr/src/keystore/ephemeral.rs, branch arti-v2.4.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.4.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.4.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-04-08T09:35:02Z</updated>
<entry>
<title>keymgr: Fix ephemeral keystore cert encoding bug (fmt)</title>
<updated>2026-04-08T09:35:02Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-08T09:35:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=91cc9a63c0e7bcdffceba4e391c8d1619806064a'/>
<id>urn:sha1:91cc9a63c0e7bcdffceba4e391c8d1619806064a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>keymgr: Fix ephemeral keystore cert encoding bug</title>
<updated>2026-04-08T09:19:38Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-07T17:38:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=73e59eee11b80b6045aab4ed1e3a9186c00e030c'/>
<id>urn:sha1:73e59eee11b80b6045aab4ed1e3a9186c00e030c</id>
<content type='text'>
This fixes a bug that was causing the ephemeral keystore to retrieve
certs in a format that couldn't be handled by the `KeyMgr`. This caused
all certificate retrievals from `EphemeralKeystore` done via the
`KeyMgr` to fail with an internal error.

For context, the only supported cert type is `TorEd25519Cert`, which is
a pre-encoded certificate (i.e. a type wrapper over a `Vec&lt;u8&gt;`).

These certificates are stored as-is by the Arti native keystore (the
bytes are written to a file on disk). When retrieving a
`TorEd25519Cert`, the Arti keystore uses `parse_certificate_erased()` to
parse the cert into a `ParsedEd25519Cert` before returning it as a
type-erased `ErasedKey`. This works as intended with the `KeyMgr`
retrieval and downcasting logic, which expects the certificate to be
returned in the `ParsedCert` format specified in the `ToEncodableCert`
implementation.

Before this change, the ephemeral keystore, on the other hand, did not
play well with the `KeyMgr` when it came to cert retrieval: it would
incorrectly store the `KeystoreItem` as-is, and retrieve it as an
`ErasedKey` using the `ErasedKey::into_erased()` implementation. This
would then cause the `KeyMgr` to fail to downcast the `ErasedKey` to the
correct type (because the returned erased item was of a different type
than `ParsedCert`).

This commit also removes `KeystoreItem::into_erased()`, which was a
footgun (because certificates are not actually supposed to be retrieved
in the format returned by `CertData::into_erased()`).
</content>
</entry>
<entry>
<title>Fix name of clippy lint to unchecked_time_subtraction (2)</title>
<updated>2025-11-06T11:28:22Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-11-06T11:23:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a5fd5c48ea059a80cc1f6c50e248654b5ff3aaff'/>
<id>urn:sha1:a5fd5c48ea059a80cc1f6c50e248654b5ff3aaff</id>
<content type='text'>
Run maint/add_warning
</content>
</entry>
<entry>
<title>Switch Cargo.toml files to edition 2024.</title>
<updated>2025-08-07T15:28:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-06T01:19:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=77b0de43b8c67cdb81befe0680a3df43b6ad37bc'/>
<id>urn:sha1:77b0de43b8c67cdb81befe0680a3df43b6ad37bc</id>
<content type='text'>
First, run

```
git grep -l "^edition =" |
    xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;'
```

Second, manually verify that all Cargo.toml files have changed,
and nothing else has changed.

Third, run cargo fmt again.
</content>
</entry>
<entry>
<title>arti: keys: Add arti keys-raw</title>
<updated>2025-07-14T14:33:56Z</updated>
<author>
<name>hjrgrn</name>
<email>3874-hjrgrn@gitlab.torproject.org</email>
</author>
<published>2025-07-10T08:07:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6958b6c89be93c77a68ab8a080a2f313bff02df0'/>
<id>urn:sha1:6958b6c89be93c77a68ab8a080a2f313bff02df0</id>
<content type='text'>
* 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&lt;Vec&lt;KeystoreEntryResult&lt;KeystoreEntry&gt;&gt;&gt;`
</content>
</entry>
<entry>
<title>tor-keymgr: BREAKING: Refactor API: Keystore::list</title>
<updated>2025-05-30T13:50:30Z</updated>
<author>
<name>hjrgrn</name>
<email>3874-hjrgrn@gitlab.torproject.org</email>
</author>
<published>2025-05-20T08:28:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a5608979813c4465d5299ffb3bcaaa5892807742'/>
<id>urn:sha1:a5608979813c4465d5299ffb3bcaaa5892807742</id>
<content type='text'>
* Change return type `Result&lt;Vec&lt;(KeyPath, KeystoreItemType)&gt;&gt;` if favor
of `Result&lt;Vec&lt;StdResult&lt;(KeyPath, KeystoreItemType), UnrecognizedEntryError&gt;&gt;&gt;`
</content>
</entry>
<entry>
<title>tor-keymgr: ephemeral type validation</title>
<updated>2025-04-03T09:37:11Z</updated>
<author>
<name>hashcatHitman</name>
<email>3924-hashcatHitman@gitlab.torproject.org</email>
</author>
<published>2025-04-03T09:37:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8a060a4ce2cdc035fa4244e8dfbbc1661236a712'/>
<id>urn:sha1:8a060a4ce2cdc035fa4244e8dfbbc1661236a712</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-keymgr: BREAKING: Refactor API: Keystore::insert</title>
<updated>2025-04-02T15:40:15Z</updated>
<author>
<name>playbahn</name>
<email>plabanroy69@gmail.com</email>
</author>
<published>2025-04-02T15:40:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f9aa4fb2c635a3fa9efd4917e59e3352ee2ef75b'/>
<id>urn:sha1:f9aa4fb2c635a3fa9efd4917e59e3352ee2ef75b</id>
<content type='text'>
Drop redundant/unused param item_type: &amp;KeystoreItemType from
keystore::Keystore::insert. Method now uses param
key: &amp;dyn EncodableItem to obtain a KeystoreItemType
</content>
</entry>
<entry>
<title>tor-keymgr: keystore::ephemeral::insert: Drop item type validation</title>
<updated>2025-04-01T23:15:39Z</updated>
<author>
<name>playbahn</name>
<email>plabanroy69@gmail.com</email>
</author>
<published>2025-03-30T21:25:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7b1aebef05fb9460ac0b07927326b1180f99df36'/>
<id>urn:sha1:7b1aebef05fb9460ac0b07927326b1180f99df36</id>
<content type='text'>
Motivation: Param _item_type is redundant since prev commit. No point
in checking if key_data's item type and _item_type are the same, we
do things as per key_data's item type from now on.

- Removes a test for item type validation.
</content>
</entry>
<entry>
<title>tor-keymgr: Fix TODO: Refactor API: Keystore::insert</title>
<updated>2025-04-01T23:15:39Z</updated>
<author>
<name>playbahn</name>
<email>plabanroy69@gmail.com</email>
</author>
<published>2025-03-30T21:21:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=961f8a6aad4208349f8bad0c9da33c759f0c63cf'/>
<id>urn:sha1:961f8a6aad4208349f8bad0c9da33c759f0c63cf</id>
<content type='text'>
Makes param item_type redundant. Renames item_type -&gt; _item_type.
</content>
</entry>
</feed>
