<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/client/channel/handshake.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: 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 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: Make VerifiableChannel::check() async</title>
<updated>2026-01-22T16:16:44Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-15T16:08:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4ac721aeb4133ddd97e38065f8d7141d02eb3cb2'/>
<id>urn:sha1:4ac721aeb4133ddd97e38065f8d7141d02eb3cb2</id>
<content type='text'>
Relay initiator needs to send CERTS and AUTHENTICATE in that function
after verifiying the channel.

And thus require to be async.

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>
<entry>
<title>proto: Seal the VerifiableChannel and FinalizableChannel traits</title>
<updated>2026-01-13T18:46:18Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-08T18:30:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=56ea95eaa159a24b321966482102f6508ca1b3cf'/>
<id>urn:sha1:56ea95eaa159a24b321966482102f6508ca1b3cf</id>
<content type='text'>
They are public but avoid anyone outside implementing them.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Add link_protocol() to VerifiableChannel trait</title>
<updated>2026-01-13T18:46:18Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-01-07T14:37:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6f365e6a55d0cdf4a657bfd83ed048c6b56d98a4'/>
<id>urn:sha1:6f365e6a55d0cdf4a657bfd83ed048c6b56d98a4</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Add traits for public channel views</title>
<updated>2026-01-13T18:46:18Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-12-16T20:09:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fb69ddcdd6c47485cdb0bb15be0345275221a2b0'/>
<id>urn:sha1:fb69ddcdd6c47485cdb0bb15be0345275221a2b0</id>
<content type='text'>
Add traits that will be returned outside tor-proto allowing us to not
expose client and relay specific channels.

The goal is for the tor-chanmgr to get those objects implementing those
traits and can build and run the reactor without knowing the specific
underlying type.

This allows us to have less code duplication and less client/relay
distinction in the chanmgr.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Make cargo doc happy</title>
<updated>2025-11-19T19:42:47Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-10-28T18:40:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ce838fbdcea7b313f7b58b5a5c59328d3cc03bca'/>
<id>urn:sha1:ce838fbdcea7b313f7b58b5a5c59328d3cc03bca</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Split VerifiedChannel::finish()</title>
<updated>2025-11-19T19:42:47Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-10-28T17:17:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9721a72e59cf6324eb4af4b61601c87545a64bb4'/>
<id>urn:sha1:9721a72e59cf6324eb4af4b61601c87545a64bb4</id>
<content type='text'>
Move the client specific code into VerifiedClientChannel as in sending
the NETINFO cell. The rest is pretty much boiler plate to build a
channel reactor.

The relay finish() code is coming in a followup commit.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Use the new client specific channels</title>
<updated>2025-11-19T19:42:47Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-10-28T16:43:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=26aa4786d7b8568c6dcd13aa26aad4df3b453024'/>
<id>urn:sha1:26aa4786d7b8568c6dcd13aa26aad4df3b453024</id>
<content type='text'>
By changing the connect() returned object we therefore officially make
VerifiedChannel and UnverifiedChannel crate only objects.

Thus, this commit changes visibility on most things.

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