<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-relay-crypto/src, branch arti-v1.3.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.3.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.3.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-10-31T14:34:51Z</updated>
<entry>
<title>tor-relay-crypto: Rename RelaySigningKeypairSpecifier's timestamp to valid_until.</title>
<updated>2024-10-31T14:34:51Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-10-30T18:23:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7a0a41e2eed85065fcb614325f6fab838aa397e3'/>
<id>urn:sha1:7a0a41e2eed85065fcb614325f6fab838aa397e3</id>
<content type='text'>
As per our discussion in
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2577#note_3099356
</content>
</entry>
<entry>
<title>tor-relay-crypto: Add tests for relay key specifier serialization.</title>
<updated>2024-10-31T14:34:51Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-10-23T11:01:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=04caca755d5294f83a571ccebeaa9b55fe13c7a7'/>
<id>urn:sha1:04caca755d5294f83a571ccebeaa9b55fe13c7a7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-relay-crypto: Add a denotator to RelaySigningKeypairSpecifier.</title>
<updated>2024-10-31T14:34:51Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-10-23T11:00:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8357c7c6fe01fd4c59e353a39ff59642bff0c19a'/>
<id>urn:sha1:8357c7c6fe01fd4c59e353a39ff59642bff0c19a</id>
<content type='text'>
This will enable us to store more than one `K_relaysign_ed` in the
keystore.

Closes #1692
</content>
</entry>
<entry>
<title>tor-relay-crypto: Add a specifier for the public part of the identity keypair.</title>
<updated>2024-10-31T14:34:01Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-10-23T10:27:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f8e5b7452cd97c58bed91707cf42f29b3b9754de'/>
<id>urn:sha1:f8e5b7452cd97c58bed91707cf42f29b3b9754de</id>
<content type='text'>
We'll eventually need this specifier (for example, if the
`KS_relayid_ed` private key stored offline, the public part of the
keypair will be stored in the online keystore, and will be retrievable
using the new `RelayIdentityPublicKeySpecifier` specifier).
</content>
</entry>
<entry>
<title>tor-relay-crypto: Fix typo in doc comment.</title>
<updated>2024-10-31T14:29:30Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-10-23T10:23:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3d0037dcc67aa7e3d34f18d5c8c7c40ac87b5718'/>
<id>urn:sha1:3d0037dcc67aa7e3d34f18d5c8c7c40ac87b5718</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-relay-crypto: Use the KS_ prefix for RelayIdentityKeySpecifier.</title>
<updated>2024-10-31T14:29:30Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-10-23T10:20:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a4f2ccf9446c25af346274122512ae457b52693a'/>
<id>urn:sha1:a4f2ccf9446c25af346274122512ae457b52693a</id>
<content type='text'>
According to its docs, `RelayIdentityKeySpecifier` was meant to be the
key specifier for the relay identity keypair, so its role prefix should
be `KS_`.

This also renames `RelayIdentityKeySpecifier` to
`RelayIdentityKeypairSpecifier` for clarity (we're about to add another
specifier here, for the public relay identity key).
</content>
</entry>
<entry>
<title>tor-relay-crypto: Temporarily comment out RelaySigningKeySpecifier.</title>
<updated>2024-10-14T17:50:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-10-14T17:50:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b2d726951d1e73f2360710681ce19f5151644a0d'/>
<id>urn:sha1:b2d726951d1e73f2360710681ce19f5151644a0d</id>
<content type='text'>
The `RelaySigningKeySpecifier` is currently defined as:
```rust
#[non_exhaustive]
#[derive(Deftly, PartialEq, Debug, Constructor)]
#[derive_deftly(KeySpecifier)]
#[deftly(prefix = "relay")]
#[deftly(role = "KP_relaysign_ed")]
#[deftly(summary = "Relay medium-term signing keypair")]
/// The key sepcifier of the relay medium-term signing key (RelaySigningKeypair)
pub struct RelaySigningKeySpecifier;
```

This means there can only be a single `relaysign_ed` key with an
`ArtiPath` of the form `relay/KP_relaysign_ed`. This is a problem,
because relays storing their identity key offline will want to generate
a number of `relaysign_ed` keys ahead of time, so we need the keystores
to be able to contain multiple such keys. We will need their `ArtiPath`
to encode a variable component (for example, a timestamp).

We also need to teach `KeyMgr` to retrieve such keys (`KeyMgr::get`
should return the first key that has a valid and timely certificate).

This will involve extending the `KeySpecifier` trait with a function for
obtaining the `KeySpecifier` of the certificate of the key, if there is
one.

For now, let's comment it out and rethink its `ArtiPath` as part of
#1692.
</content>
</entry>
<entry>
<title>tor-key-forge: encapsulate `define_ed25519_keypair` macro deps</title>
<updated>2024-09-18T19:27:33Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2024-09-18T19:21:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6a9b0ee6f5e02b794174b9766d3eb21c73562ee7'/>
<id>urn:sha1:6a9b0ee6f5e02b794174b9766d3eb21c73562ee7</id>
<content type='text'>
This re-exports the types/traits needed by the `define_ed25519_keypair`
macro so that the macro caller doesn't need to import a bunch of extra
packages in its Cargo.toml that it doesn't use, and so that the caller
doesn't need a `use prelude::*` before invoking the macro. This makes
the macro nicer to use for the caller, and should prevent the macro from
causing "cannot find ... in this scope" errors.
</content>
</entry>
<entry>
<title>key-forge: Support extra docs and attributes to ed25519 keypair</title>
<updated>2024-09-18T13:24:04Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-09-16T17:36:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ba498b170ced9230254d9a6e1a7d159ee8f03ccd'/>
<id>urn:sha1:ba498b170ced9230254d9a6e1a7d159ee8f03ccd</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>relay-crypto: Initial import of new tor-relay-crypto crate</title>
<updated>2024-09-18T13:24:04Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-09-09T20:18:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=aad66a0213fa182e9cec6120af1175a21ca2b309'/>
<id>urn:sha1:aad66a0213fa182e9cec6120af1175a21ca2b309</id>
<content type='text'>
This adds a new crate called tor-relay-crypto which is responsible for
declaring the relay keys and certificate that will be used by a relay
and stored in a KeyMgr.

This is in its own crate and considered pretty low level so other crates
can use it to access the relay keys, like tor-proto, for cryptographic
actions like channel authentication or descriptor signing.

The lower level cryptographic keys are wrapped in a higher level object
in this crate, using tor-key-forge crate, so we can have proper semantic
and strong type check on those keys so they are not misused or confused
with other keys.

At this point, the key declaration might change once the KeyMgr supports
attaching a certificate to a key. We are likely going to see more code
related to certificate creation in this crate in the future.

Part of #1604

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