<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/channel, 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-28T17:46:56Z</updated>
<entry>
<title>Merge branch 'unused-async-lint' into 'main'</title>
<updated>2026-01-28T17:46:56Z</updated>
<author>
<name>gabi-250</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-01-28T17:46:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f44cbfaa024e24e5bc924cdee3d2db9dd4b40239'/>
<id>urn:sha1:f44cbfaa024e24e5bc924cdee3d2db9dd4b40239</id>
<content type='text'>
maint/add_warning: Deny clippy::unused_async

Closes #2328

See merge request tpo/core/arti!3613</content>
</entry>
<entry>
<title>proto: Add an exception for clippy::unused_async</title>
<updated>2026-01-27T18:19:03Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-01-27T18:19:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2f160f7d1d97cb3663b324166cc08d5b5f11ee91'/>
<id>urn:sha1:2f160f7d1d97cb3663b324166cc08d5b5f11ee91</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Remove unnecessary async in channel reactor</title>
<updated>2026-01-27T18:09:52Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-01-27T18:09:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0e19119d0489cedcd67cef5a48e3eb15b595328f'/>
<id>urn:sha1:0e19119d0489cedcd67cef5a48e3eb15b595328f</id>
<content type='text'>
This resolves a warning triggered by the newly-introduced
`#[deny(clippy::unused_async)]`.
</content>
</entry>
<entry>
<title>clippy: Fix missing doc for non-Linux builds</title>
<updated>2026-01-27T15:02:57Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-01-27T15:02:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c79448ffd74a62e416386754bda86c4fd44f1fdc'/>
<id>urn:sha1:c79448ffd74a62e416386754bda86c4fd44f1fdc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Add missing use for tests</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-21T18:47:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=27dcdf41e795cb3308db93b9ba7055f5cdd45335'/>
<id>urn:sha1:27dcdf41e795cb3308db93b9ba7055f5cdd45335</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: 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: Remove uneeded code in the unverified inner check()</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-20T17:50:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fa6ef73f523cd395443a83b35454bfc22ba44db9'/>
<id>urn:sha1:fa6ef73f523cd395443a83b35454bfc22ba44db9</id>
<content type='text'>
We can't get into the UnverifiedChannel::check() without wanting to
verify our identities and authenticate.

This validation has moved before calling check() for the relay channel
type.

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>
<entry>
<title>proto: Make CERTS cell optionnable for UnverifiedChannel</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-14T15:44:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0c5616e1fa0fd51b5bdbc3677ab260a1cbe2158b'/>
<id>urn:sha1:0c5616e1fa0fd51b5bdbc3677ab260a1cbe2158b</id>
<content type='text'>
This requires to make a series of cert and digest also optionnable in
the VerifiedChannel.

This change is needed because as a relay responder, you might get the
CERTS or not depending on if the other side wants to authenticate.
Client and bridges do not authenticate and thus it is expected to not
have a CERTS cell.

This leads to the UnverifiedChannel::check() function to return early
with a VerifiedChannel without any identity attached to it.

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