<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-keymgr/src/keystore, 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-05-18T15:07:50Z</updated>
<entry>
<title>keymgr: Update tests to stop using RawKeystoreEntry (fmt)</title>
<updated>2026-05-18T15:07:50Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-05-18T13:44:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=adb4a7f37802dd7103f603183736d1554902afdb'/>
<id>urn:sha1:adb4a7f37802dd7103f603183736d1554902afdb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>keymgr: Update tests to stop using RawKeystoreEntry</title>
<updated>2026-05-18T15:07:50Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-05-18T13:40:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=990fba43560351210275dab971285d9de038bf8a'/>
<id>urn:sha1:990fba43560351210275dab971285d9de038bf8a</id>
<content type='text'>
`RawKeystoreEntry` no longer exists, so these tests need to be updated.
</content>
</entry>
<entry>
<title>keymgr: Remove RawKeystoreEntry (fmt)</title>
<updated>2026-05-18T15:07:50Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-05-18T13:28:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4673b7a95bd023ac8d84046462a3790ec3785893'/>
<id>urn:sha1:4673b7a95bd023ac8d84046462a3790ec3785893</id>
<content type='text'>
</content>
</entry>
<entry>
<title>keymgr: Remove RawKeystoreEntry</title>
<updated>2026-05-18T15:07:50Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-05-18T13:24:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2cfba1e031f5721cda583d95c03223e517c11612'/>
<id>urn:sha1:2cfba1e031f5721cda583d95c03223e517c11612</id>
<content type='text'>
I think this adds unnecessary indirection, and it's a bit confusing to
have two separate keystore entry types (we have `KeystoreEntry` too).

This type exists just to server as a wrapper over the `RawEntryId` of an
unrecognized keystore entry, and the `KeystoreId` of the keystore it was
found in.

This commit folds `RawKeystoreEntry` into `UnrecognizedEntry`, which was
previously a thin wrapper over `RawKeystoreEntry`.
</content>
</entry>
<entry>
<title>tor-cert: Ed25519CertBuilder: do builder fn rename</title>
<updated>2026-04-29T16:49:21Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-04-28T09:58:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d90b703d0c4bc4ffb9068fb5c25fc78e72743961'/>
<id>urn:sha1:d90b703d0c4bc4ffb9068fb5c25fc78e72743961</id>
<content type='text'>
Change all call sites.

This completes the rename.
</content>
</entry>
<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>tor-keymgr: migrate to web-time-compat.</title>
<updated>2026-03-26T19:20:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-03-26T14:04:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=734837268cd5a6c9b177b8daa11aa38b33500dac'/>
<id>urn:sha1:734837268cd5a6c9b177b8daa11aa38b33500dac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix typos</title>
<updated>2026-03-24T16:04:08Z</updated>
<author>
<name>Tobias Stoeckmann</name>
<email>tobias@stoeckmann.org</email>
</author>
<published>2026-03-24T16:04:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1fb2b8dd4aee7c943ce90d6631be473f2a296fe6'/>
<id>urn:sha1:1fb2b8dd4aee7c943ce90d6631be473f2a296fe6</id>
<content type='text'>
Typos found with codespell
</content>
</entry>
<entry>
<title>keymgr: Make CTorPath more like the client/service specifiers (fmt)</title>
<updated>2026-01-06T15:25:20Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-01-06T10:45:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=cf0267f8e4b6182448963949cfeebe35f949eb0f'/>
<id>urn:sha1:cf0267f8e4b6182448963949cfeebe35f949eb0f</id>
<content type='text'>
</content>
</entry>
</feed>
