<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/relay/channel/handshake.rs, branch arti-v2.1.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.1.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.1.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-02-25T18:46:39Z</updated>
<entry>
<title>proto: Implement the build_certs_cell() helper</title>
<updated>2026-02-25T18:46:39Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-25T18:18:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d19cc4f704d352eb771bb6588a792e24343126f2'/>
<id>urn:sha1:d19cc4f704d352eb771bb6588a792e24343126f2</id>
<content type='text'>
It was all commented out until now that we have a final
RelayIdentities.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Pass PeerAddr at the channel handshake finish for initiators</title>
<updated>2026-02-19T20:57:29Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-19T15:11:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5bc019e82fdc7c8eac940c1c9d7cbd6227fe6ea6'/>
<id>urn:sha1:5bc019e82fdc7c8eac940c1c9d7cbd6227fe6ea6</id>
<content type='text'>
Responder relay handshake requires the peer address at the very start as
it sends its NETINFO right away.

For initiators, we only need it during the finalization process which is
when the NETINFO is sent and the Channel is created.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Use the PeerAddr accross channel handshake</title>
<updated>2026-02-19T20:57:29Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-16T18:09:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7cbd4d561a0c38043d8b074800ab576bf9770f5a'/>
<id>urn:sha1:7cbd4d561a0c38043d8b074800ab576bf9770f5a</id>
<content type='text'>
This is a large change but it is basically using PeerAddr in the channel
builder through the channel handshake code and into the Channel itself.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Channel finish() now handles canonicity</title>
<updated>2026-02-12T16:11:07Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-10T20:02:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5dfb1745dd436fae53822448129198d6707cca0b'/>
<id>urn:sha1:5dfb1745dd436fae53822448129198d6707cca0b</id>
<content type='text'>
All handshake pass the NETINFO cell, the advertised addresses (if any)
and the peer address in order to build the Canonicity and build the
channel with it.

In order to pull this off, the "my_addrs" were added to several object
along the NETINFO cell.

We also pass the channel method when connecting (initiator) to a relay
as we need this for this canonicity build.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Introduce new relay responder channel types</title>
<updated>2026-02-04T18:22:17Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-03T16:10:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bfd8739237c838319b04290759a4b0e4604a45b8'/>
<id>urn:sha1:bfd8739237c838319b04290759a4b0e4604a45b8</id>
<content type='text'>
Add the unverified, verified, non verifiable flavor types of a responder
channel.

This follow on the previous commit to use the type system for stronger
guarantees.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Introduce new relay initiator channel types</title>
<updated>2026-02-04T18:22:17Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-03T15:08:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fd416ab3d9087f3935ca1ef173282396e74e10a6'/>
<id>urn:sha1:fd416ab3d9087f3935ca1ef173282396e74e10a6</id>
<content type='text'>
This commit adds the Unverified and Verified flavor of a relay channel
specific to an initiator.

We decided to use the type system for safety and avoid patterns like:
    "if chan.is_initiator() {...} else {...}"

This allows us also to not duplicate code between initiator and
responder code.

The downside is that we expose these types outside of tor-proto meaning
the caller needs to feature gate the usage of these types with the
"relay" flag.

Small price to pay for strong guarantees with the type system.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Enforce condition with type system</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-22T15:26:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f07e83b2d321fcc9907413371298f683bed6ed51'/>
<id>urn:sha1:f07e83b2d321fcc9907413371298f683bed6ed51</id>
<content type='text'>
This commits returns either Some(AUTH_CELL, CERTS) or None. We future
proof ourselves against one Some and other None even if an error check
is done before.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Use the channel codec channel type</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-21T16:47:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1da8fe2d546f2ad3693afeb5a13cb7b8a8ed0f13'/>
<id>urn:sha1:1da8fe2d546f2ad3693afeb5a13cb7b8a8ed0f13</id>
<content type='text'>
Remove the channel type from Unverified and Verified channels and
instead use the channel type in the underlying channel codec.

The codec requires such type in order to restrict messages sets. Instead
of duplicating it, this commit simply makes it that there is now only a
single channel type attached to a channel structure.

The resulting `struct Channel` in the end gets it copied from the
channel codec as the framed_tls gets split and given to the `Reactor`.

Down the line, we need a channel type attached to the `Channel` in order
to know if it is a client or not and authenticated or not.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Remove Option&lt;&gt; around peer_ip for build_netinfo_cell()</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-20T19:08:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=225918194c4938ff2717bac807296c1833817323'/>
<id>urn:sha1:225918194c4938ff2717bac807296c1833817323</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Avoid magic hardcoded value for LINK_AUTH</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-20T18:38:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9299b9d4c2d100b4ef16b3035535b0ba2077eb49'/>
<id>urn:sha1:9299b9d4c2d100b4ef16b3035535b0ba2077eb49</id>
<content type='text'>
Instead, use the static AUTHTYPE_ED25519_SHA256_RFC5705 value which is
for now the only version we support.

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