<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-relay-crypto/src/pk.rs, branch arti-v2.5.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.5.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.5.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-04-21T18:01:27Z</updated>
<entry>
<title>relay: Modify RelayNtorKeys to use a constructor</title>
<updated>2026-04-21T18:01:27Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-04-21T14:27:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e84f73d564b71c386b4e18020da0093839a8874a'/>
<id>urn:sha1:e84f73d564b71c386b4e18020da0093839a8874a</id>
<content type='text'>
Because of the sorting requirement and the fact that a `KeyMgr` can have
multiple Ntor keys, the caller now explicitly extract the two Ntor keys
it wants from the `KeyMgr` and then creates a `RelayNtorKeys` object
with them.

Future changes (#2495) will move this into a view and warn if there are
more than 2 keys.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>relay-crypto: Add RelayNtorKeys struct holding both Ntor keys</title>
<updated>2026-04-21T18:01:27Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-04-16T16:11:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dc114d6c580b9360d241327b36e13f506d1cd529'/>
<id>urn:sha1:dc114d6c580b9360d241327b36e13f506d1cd529</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>relay-crypto: Add new RelayNtor key wrapper</title>
<updated>2026-04-09T17:34:01Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-01T13:05:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a677677e0bcbfd3cebe7c2e31f45bddbb00e2d07'/>
<id>urn:sha1:a677677e0bcbfd3cebe7c2e31f45bddbb00e2d07</id>
<content type='text'>
</content>
</entry>
<entry>
<title>arti-relay: Move all key specifiers to a new keys module</title>
<updated>2026-04-01T11:17:50Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-01T10:45:21Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2cdc938a1bca3aa84eb7317a17d7776e55af5ae4'/>
<id>urn:sha1:2cdc938a1bca3aa84eb7317a17d7776e55af5ae4</id>
<content type='text'>
This extracts the key specifier types out of `tor-relay-crypto`, which

  * makes the code layout consistent with the hidden service crates (the
    key specifiers are defined in a `keys` module in `tor-hsservice`,
    while the key wrapper types live in `tor-hscrypto::pk`)
  * helps reduce the API surface: the key specifiers are only used in
    `arti-relay`, so we can move them there and make them `pub(crate)`
    instead of `pub`
</content>
</entry>
<entry>
<title>proto: Add key specifier types for the ntor keys</title>
<updated>2026-04-01T11:06:40Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-01T10:19:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a135f1ea5abd3eac7f565babf8f6b36d827e46e0'/>
<id>urn:sha1:a135f1ea5abd3eac7f565babf8f6b36d827e46e0</id>
<content type='text'>
Part of #2451
</content>
</entry>
<entry>
<title>tor-relay-crypto: port 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:06:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3dd9cb6493681f12bb1b0e9426832fae478f2174'/>
<id>urn:sha1:3dd9cb6493681f12bb1b0e9426832fae478f2174</id>
<content type='text'>
</content>
</entry>
<entry>
<title>relay: Rewrite the rotation key logic in the crypto task</title>
<updated>2026-03-17T19:07:06Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-12T19:23:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2ffce9efd3b3dd30a0cbfd7e7af5484dc1f7031f'/>
<id>urn:sha1:2ffce9efd3b3dd30a0cbfd7e7af5484dc1f7031f</id>
<content type='text'>
This is almost a full rewrite of the crypto task which was needed in
order to support our relay signing certificate to be put in the keystore
which will be needed for the offline key feature.

Instead of having rotate_key() do all the things, we now instead do two
pass:

1. Remove all expired keys and certs.
2. Generate any missing keys.

This still results in using the minimum valid_until of all our keys for
the task sleep time.

We can know cleanup the local trait used for this gymnastic and trade it
for some more KeyMgr gymnastic.

Fixes #2404

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>relay-crypto: Add test for cert specifier patterns</title>
<updated>2026-03-12T14:56:39Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-03-05T18:50:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=daefbb9f1220ab25209db114ee03042f230a340a'/>
<id>urn:sha1:daefbb9f1220ab25209db114ee03042f230a340a</id>
<content type='text'>
For relays these are pretty basic (they have no globbing components),
because relay certs don't have specifiers (their `ArtiPath`s are
identical to the `ArtiPath` of the subject key).
</content>
</entry>
<entry>
<title>relay-crypto: Use the new CertSpecifier macro</title>
<updated>2026-03-12T14:56:39Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-02-26T18:34:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4f7bed95068c60e3021ac423097273b0d8f99ccc'/>
<id>urn:sha1:4f7bed95068c60e3021ac423097273b0d8f99ccc</id>
<content type='text'>
This enables the `experimental-api` feature in `tor-keymgr` because
`CertSpecifier` is experimental.
</content>
</entry>
<entry>
<title>keymgr: Abolish KeyCertificateSpecifier::signing_key_specifier()</title>
<updated>2026-03-12T14:56:35Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-02-27T16:19:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=29b8feb559114245e95a9de561b504e3e387fcd4'/>
<id>urn:sha1:29b8feb559114245e95a9de561b504e3e387fcd4</id>
<content type='text'>
We need to be able to parse KeyPaths into KeyCertificateSpecifier,
and we can't do that if the signing key is part of the cert specifier
(because the signing key doesn't get encoded in the key path, unlike the
subject key, which does)
</content>
</entry>
</feed>
