<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-key-forge, 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-05-06T16:59:22Z</updated>
<entry>
<title>release: Bump tor- and arti- crate versions.</title>
<updated>2026-05-06T16:59:22Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2026-05-06T16:59:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ff8102632670bb1f8d1fb84737ed49f32d3032a9'/>
<id>urn:sha1:ff8102632670bb1f8d1fb84737ed49f32d3032a9</id>
<content type='text'>
cargo set-version -p arti-client 0.42.0
cargo set-version -p arti-config 0.42.0
cargo set-version -p arti-relay 0.42.0
cargo set-version -p arti-rpc-client-core 0.42.0
cargo set-version -p arti-rpcserver 0.42.0
cargo set-version -p arti-testing 0.42.0
cargo set-version -p arti-ureq 0.42.0
cargo set-version -p tor-async-utils 0.42.0
cargo set-version -p tor-basic-utils 0.42.0
cargo set-version -p tor-bytes 0.42.0
cargo set-version -p tor-cell 0.42.0
cargo set-version -p tor-cert 0.42.0
cargo set-version -p tor-cert-x509 0.42.0
cargo set-version -p tor-chanmgr 0.42.0
cargo set-version -p tor-checkable 0.42.0
cargo set-version -p tor-circmgr 0.42.0
cargo set-version -p tor-config 0.42.0
cargo set-version -p tor-config-path 0.42.0
cargo set-version -p tor-consdiff 0.42.0
cargo set-version -p tor-dirclient 0.42.0
cargo set-version -p tor-dircommon 0.42.0
cargo set-version -p tor-dirmgr 0.42.0
cargo set-version -p tor-dirserver 0.42.0
cargo set-version -p tor-error 0.42.0
cargo set-version -p tor-events 0.42.0
cargo set-version -p tor-general-addr 0.42.0
cargo set-version -p tor-geoip 0.42.0
cargo set-version -p tor-guardmgr 0.42.0
cargo set-version -p tor-hsclient 0.42.0
cargo set-version -p tor-hscrypto 0.42.0
cargo set-version -p tor-hsrproxy 0.42.0
cargo set-version -p tor-hsservice 0.42.0
cargo set-version -p tor-key-forge 0.42.0
cargo set-version -p tor-keymgr 0.42.0
cargo set-version -p tor-linkspec 0.42.0
cargo set-version -p tor-llcrypto 0.42.0
cargo set-version -p tor-log-ratelim 0.42.0
cargo set-version -p tor-memquota 0.42.0
cargo set-version -p tor-memquota-cost 0.42.0
cargo set-version -p tor-netdir 0.42.0
cargo set-version -p tor-netdoc 0.42.0
cargo set-version -p tor-persist 0.42.0
cargo set-version -p tor-proto 0.42.0
cargo set-version -p tor-protover 0.42.0
cargo set-version -p tor-ptmgr 0.42.0
cargo set-version -p tor-relay-crypto 0.42.0
cargo set-version -p tor-relay-selection 0.42.0
cargo set-version -p tor-rpcbase 0.42.0
cargo set-version -p tor-rpc-connect 0.42.0
cargo set-version -p tor-rtcompat 0.42.0
cargo set-version -p tor-rtmock 0.42.0
cargo set-version -p tor-socksproto 0.42.0
cargo set-version -p tor-units 0.42.0
</content>
</entry>
<entry>
<title>tor-cert: Remove the "encode" cargo feature</title>
<updated>2026-04-29T16:51:26Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-04-28T10:19:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7ec50d5779791ff96d31e9578ba95ef124bc1e42'/>
<id>urn:sha1:7ec50d5779791ff96d31e9578ba95ef124bc1e42</id>
<content type='text'>
This was experimental.  Everything gated by it has been stabilised.
</content>
</entry>
<entry>
<title>tor-key-forge: for `Curve25519Keypair` public key, add `inner()`</title>
<updated>2026-04-14T19:03:01Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2026-04-13T19:03:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1634660113d0ca4ddd981ed32476efd1556ebac7'/>
<id>urn:sha1:1634660113d0ca4ddd981ed32476efd1556ebac7</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>Update to derive-deftly 0.11.0 to pick up `meta_quoted rigorous`</title>
<updated>2026-04-02T13:13:17Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-04-02T13:11:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=cbd60bfe92d94184f48cf0e51cd6f3834f72f4dd'/>
<id>urn:sha1:cbd60bfe92d94184f48cf0e51cd6f3834f72f4dd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update to derive-deftly 0.10.0.</title>
<updated>2026-03-31T11:15:51Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-03-31T10:29:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b7179abf0261a0dfe28d0847495e62033264744d'/>
<id>urn:sha1:b7179abf0261a0dfe28d0847495e62033264744d</id>
<content type='text'>
There are no breaking changes.
</content>
</entry>
<entry>
<title>Bump versions: tor-* and arti-* unstable crates</title>
<updated>2026-03-30T19:00:25Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-03-30T18:58:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=44585ca52cf2dad1f1f3495df54fe9ed6e96d31a'/>
<id>urn:sha1:44585ca52cf2dad1f1f3495df54fe9ed6e96d31a</id>
<content type='text'>
As per
  https://gitlab.torproject.org/tpo/core/arti/-/issues/2436#note_3384773

Made with
  nailing-cargo -Eu set-version -p arti-client 0.41.0
  nailing-cargo -Eu set-version -p arti-relay 0.41.0
  nailing-cargo -Eu set-version -p arti-rpcserver 0.41.0
  nailing-cargo -Eu set-version -p arti-ureq 0.41.0
  nailing-cargo -Eu set-version -p arti-rpc-client-core 0.41.0
  nailing-cargo -Eu set-version -p tor-basic-utils 0.41.0
  nailing-cargo -Eu set-version -p tor-error 0.41.0
  nailing-cargo -Eu set-version -p tor-general-addr 0.41.0
  nailing-cargo -Eu set-version -p tor-geoip 0.41.0
  nailing-cargo -Eu set-version -p tor-memquota-cost 0.41.0
  nailing-cargo -Eu set-version -p tor-llcrypto 0.41.0
  nailing-cargo -Eu set-version -p tor-cert-x509 0.41.0
  nailing-cargo -Eu set-version -p tor-rtcompat 0.41.0
  nailing-cargo -Eu set-version -p tor-rtmock 0.41.0
  nailing-cargo -Eu set-version -p tor-async-utils 0.41.0
  nailing-cargo -Eu set-version -p tor-config 0.41.0
  nailing-cargo -Eu set-version -p tor-config-path 0.41.0
  nailing-cargo -Eu set-version -p tor-rpc-connect 0.41.0
  nailing-cargo -Eu set-version -p tor-log-ratelim 0.41.0
  nailing-cargo -Eu set-version -p tor-rpcbase 0.41.0
  nailing-cargo -Eu set-version -p tor-memquota 0.41.0
  nailing-cargo -Eu set-version -p tor-units 0.41.0
  nailing-cargo -Eu set-version -p tor-bytes 0.41.0
  nailing-cargo -Eu set-version -p tor-protover 0.41.0
  nailing-cargo -Eu set-version -p tor-checkable 0.41.0
  nailing-cargo -Eu set-version -p tor-cert 0.41.0
  nailing-cargo -Eu set-version -p tor-key-forge 0.41.0
  nailing-cargo -Eu set-version -p tor-hscrypto 0.41.0
  nailing-cargo -Eu set-version -p tor-socksproto 0.41.0
  nailing-cargo -Eu set-version -p tor-linkspec 0.41.0
  nailing-cargo -Eu set-version -p tor-cell 0.41.0
  nailing-cargo -Eu set-version -p tor-persist 0.41.0
  nailing-cargo -Eu set-version -p tor-keymgr 0.41.0
  nailing-cargo -Eu set-version -p tor-relay-crypto 0.41.0
  nailing-cargo -Eu set-version -p tor-proto 0.41.0
  nailing-cargo -Eu set-version -p tor-netdoc 0.41.0
  nailing-cargo -Eu set-version -p tor-consdiff 0.41.0
  nailing-cargo -Eu set-version -p tor-netdir 0.41.0
  nailing-cargo -Eu set-version -p tor-relay-selection 0.41.0
  nailing-cargo -Eu set-version -p tor-chanmgr 0.41.0
  nailing-cargo -Eu set-version -p tor-ptmgr 0.41.0
  nailing-cargo -Eu set-version -p tor-dircommon 0.41.0
  nailing-cargo -Eu set-version -p tor-guardmgr 0.41.0
  nailing-cargo -Eu set-version -p tor-circmgr 0.41.0
  nailing-cargo -Eu set-version -p tor-dirclient 0.41.0
  nailing-cargo -Eu set-version -p tor-dirmgr 0.41.0
  nailing-cargo -Eu set-version -p tor-dirserver 0.41.0
  nailing-cargo -Eu set-version -p tor-hsclient 0.41.0
  nailing-cargo -Eu set-version -p tor-hsservice 0.41.0
  nailing-cargo -Eu set-version -p tor-hsrproxy 0.41.0
</content>
</entry>
<entry>
<title>keymgr, key-forge: Use our ssh-* forks</title>
<updated>2026-03-16T16:22:25Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-03-16T14:39:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=264b5e818504a83c4e341387160a3d9ab7358404'/>
<id>urn:sha1:264b5e818504a83c4e341387160a3d9ab7358404</id>
<content type='text'>
Upstream `ssh-key` is missing some important features we need for
arti-relay:

  * a bug fix without which we can't convert deserialized RSA keys to
    their rsa counterparts: https://github.com/RustCrypto/SSH/pull/318
  * @wesleyac 's patch https://github.com/RustCrypto/SSH/pull/412 for
    allowing insecure (1024 bits long) RSA keys (needed because the
    relay KS_relayid_rsa identity keys are 1024 bits long)

We plan to switch back to mainline `ssh-key` when `ssh-key 0.7.0` comes
out.

See the discussion in #2398 for more details.
</content>
</entry>
<entry>
<title>Bump all the unstable tor- and arti- crates to 0.40.0.</title>
<updated>2026-03-02T17:42:42Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-03-02T17:42:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=404764338e0f5df7209c89c4a48ad50e53423bd1'/>
<id>urn:sha1:404764338e0f5df7209c89c4a48ad50e53423bd1</id>
<content type='text'>
Done using:

```
for crate in $(./maint/list_crates  | rg '^(tor|arti-)'); do
    cargo set-version -p $crate 0.40.0
done
</content>
</entry>
<entry>
<title>relay: Implement a helper to build RelayIdentities</title>
<updated>2026-02-23T20:17:32Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-19T18:39:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c22607156b1bddfe8a50e3bfccefbbb07d6d458c'/>
<id>urn:sha1:c22607156b1bddfe8a50e3bfccefbbb07d6d458c</id>
<content type='text'>
This required to add a slight helper to our tor-key-forge RSA key d-d
macro to access the inner keypair. This avoids a clone.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
</feed>
