<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/relay/channel.rs, branch arti-v2.0.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.0.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.0.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-01-22T16:16:44Z</updated>
<entry>
<title>proto: Improve some comments in relay module</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-22T16:12:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3c01ad27b3c6cf203beaa8780600bc0fd4f92549'/>
<id>urn:sha1:3c01ad27b3c6cf203beaa8780600bc0fd4f92549</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Fix the link auth handling from the AUTH_CHALLENGE</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-22T15:00:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0f108f94a90bdf4cdaeaba5924a471b981b5afa7'/>
<id>urn:sha1:0f108f94a90bdf4cdaeaba5924a471b981b5afa7</id>
<content type='text'>
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: Improve comments on build_auth_data() about clog/slog</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-21T14:22:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3c5c66d5da17405565870d4d1952a21e1d5fff48'/>
<id>urn:sha1:3c5c66d5da17405565870d4d1952a21e1d5fff48</id>
<content type='text'>
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: Put rsa_id and rsa_cert_digest together</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-20T18:56:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=00614a601dfff32d8e364468c12e282cd995f736'/>
<id>urn:sha1:00614a601dfff32d8e364468c12e282cd995f736</id>
<content type='text'>
Avoid having one None and the other Some which would be a bug.

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>
<entry>
<title>proto: Remove async for VerifiableChannel::check()</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-20T18:24:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e5c0aae2460463be8c53def32f5460b319f241bb'/>
<id>urn:sha1:e5c0aae2460463be8c53def32f5460b319f241bb</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Move cell sending out of check() and into finish()</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-20T18:20:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=78dbdd669af9974189f10877dce5bafd3d56a1d5'/>
<id>urn:sha1:78dbdd669af9974189f10877dce5bafd3d56a1d5</id>
<content type='text'>
This is so check() only authenticate a channel. The finish() function
now only sends back the missing cells and build the final Channel.

To pull this off, the AUTHENTICATE cell and our IP addresses need to be
copied into the VerifiedRelayChannel.

This allows us to remove complexity into the check() function as well
and future commit will remove the async.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Implement FinalizableChannel for an unverified relay channel</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-20T17:44:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2658374b2846e6da6b81bdc53a70a8030562d306'/>
<id>urn:sha1:2658374b2846e6da6b81bdc53a70a8030562d306</id>
<content type='text'>
Reason for this is so we can use the type system to enforce that a
client/bridge&lt;-&gt; relay channel can never become verified and thus in the
code path of authentication.

In other words, when check() is called, without an authentication cell,
we can't authenticate or even verify the identities so we immediately
return "self" which in this case is the UnverifiedRelayChannel.

That channel can be finish()-ed to yield a Channel that can never be
considered authenticated.

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