<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-keymgr/src/keystore, branch arti-v2.3.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.3.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.3.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-04-29T16:49:21Z</updated>
<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>
<entry>
<title>keymgr: Make CTorPath more like the client/service specifiers</title>
<updated>2026-01-06T15:25:20Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-01-06T10:43:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=71178a54dc8c3c3ed75b14ecbca3197feb22accc'/>
<id>urn:sha1:71178a54dc8c3c3ed75b14ecbca3197feb22accc</id>
<content type='text'>
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.
</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>Lay foundations for RSA keys in keystore.</title>
<updated>2025-09-30T20:00:51Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2025-09-30T18:44:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=073a6a96873d953cd4e8cc5018b593e3aa04d83a'/>
<id>urn:sha1:073a6a96873d953cd4e8cc5018b593e3aa04d83a</id>
<content type='text'>
This currently can't be used due to upstream limitations in the ssh_key
crate, which will be removed likely in the next release. In the
meantime, we can put in all the groundwork.
</content>
</entry>
<entry>
<title>misc: cleanup now that `_report!` macros support fields</title>
<updated>2025-08-18T19:45:55Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-08-09T20:31:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2de5c18fae7be30c4ab3c3fae520c81fb3ff74ed'/>
<id>urn:sha1:2de5c18fae7be30c4ab3c3fae520c81fb3ff74ed</id>
<content type='text'>
</content>
</entry>
</feed>
