<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-keymgr/src, 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: Remove outdated references to derive-adhoc</title>
<updated>2026-04-16T09:58:51Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-16T09:58:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9d55cc0ac67ca9dfd9cf9e164e00b950492aa571'/>
<id>urn:sha1:9d55cc0ac67ca9dfd9cf9e164e00b950492aa571</id>
<content type='text'>
This updates some outdated references from back when `derive-deftly` was
called `derive-adhoc`.
</content>
</entry>
<entry>
<title>keymgr: Use CAPS for metasyntactic variables in macro</title>
<updated>2026-04-16T09:22:54Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-16T09:20:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bfc0a608c0fbbfd563258b62067459e0ac2e1779'/>
<id>urn:sha1:bfc0a608c0fbbfd563258b62067459e0ac2e1779</id>
<content type='text'>
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3891#note_3395849
</content>
</entry>
<entry>
<title>keymgr: Don't require ctor_path attr to be quoted</title>
<updated>2026-04-16T09:22:54Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-15T13:12:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=50aa5c847369fa58e22fca981a02912f83a7ac4c'/>
<id>urn:sha1:50aa5c847369fa58e22fca981a02912f83a7ac4c</id>
<content type='text'>
This updates a doc and the corresponding test.
</content>
</entry>
<entry>
<title>keymgr: Use unquoted keypair_specifier in tests</title>
<updated>2026-04-16T09:22:54Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-15T13:07:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6d7e6a278a0b0a9822a198d2933bf2ea8a46897c'/>
<id>urn:sha1:6d7e6a278a0b0a9822a198d2933bf2ea8a46897c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>keymgr: Make KeySpecifier take an unquoted keypair_specifier</title>
<updated>2026-04-16T09:22:54Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-15T12:52:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2e0d03856a6cc23202cbd6d023ebf4bed1b735f5'/>
<id>urn:sha1:2e0d03856a6cc23202cbd6d023ebf4bed1b735f5</id>
<content type='text'>
This also makes the macro `beta_deftly`.
</content>
</entry>
<entry>
<title>keymgr: Require keypair_specifier to be a type</title>
<updated>2026-04-16T09:22:54Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-15T13:02:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=28c1525102d25a86087432cdb464e818a778c056'/>
<id>urn:sha1:28c1525102d25a86087432cdb464e818a778c056</id>
<content type='text'>
I want to make all uses of `keypair_specifier` unquoted, so this can't
be a `token_stream` (and in fact, `keypair_specifier` was always meant
to be a type).
</content>
</entry>
<entry>
<title>keymgr: Update outdated KeySpecifier doc</title>
<updated>2026-04-16T09:22:54Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-15T12:54:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=aa5936f3d88d1badfa4e869b271df65dc93cd4f4'/>
<id>urn:sha1:aa5936f3d88d1badfa4e869b271df65dc93cd4f4</id>
<content type='text'>
This attribute is called `keypair_specifier`, not `key_specifier`.
</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>
</feed>
