<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/relay/channel/handshake.rs, branch arti-v2.2.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.2.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.2.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-03-26T19:20:16Z</updated>
<entry>
<title>tor-proto: Port to web-time-compat</title>
<updated>2026-03-26T19:20:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-03-26T14:33:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=11f365738ade6ba75eedee83d7d19f8877da7d65'/>
<id>urn:sha1:11f365738ade6ba75eedee83d7d19f8877da7d65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: fix the relay responder's CLOG/SLOG digests</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2026-03-05T15:02:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a5d85881d3e0a90346571300eb7d16a821110548'/>
<id>urn:sha1:a5d85881d3e0a90346571300eb7d16a821110548</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: fix the relay initiator's SLOG digest</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2026-03-05T00:13:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0515e9b8c93126a60d824a54c710bb79e298a62b'/>
<id>urn:sha1:0515e9b8c93126a60d824a54c710bb79e298a62b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Set the link protocol outside the recv VERSIONS helper</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-11T17:11:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=24413da7004f4a89b4e9afde4036398693cce52d'/>
<id>urn:sha1:24413da7004f4a89b4e9afde4036398693cce52d</id>
<content type='text'>
It used to work for an initiator to set the link protocol once a
VERSIONS is received because initiator send their VERSIONS before. This
failed with responders because a responder channel sends their VERSIONS
after receiving one from the initiator.

This reverse logic means that the channel cell handler was transitionned
to the Handshake state before a responder was able to send a VERSIONS
cell leading to a failure because VERSIONS cell aren't allowed at the
Handshake state.

To fix this, the send/recv or recv/send is now explicit per channel type
and once this is done and successful, the link protocol is set. A
`set_link_protocol()` is added to the ChannelBaseHandshake trait so it
can be used to set the cell handler.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: New UnverifiedInitiatorChannel</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-04T18:28:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2539784719e15f1e545dd3617f3bdbc4236883c2'/>
<id>urn:sha1:2539784719e15f1e545dd3617f3bdbc4236883c2</id>
<content type='text'>
Both client and relay specialized channel now use it as their inner base
channel so they can use the same common verify() function since it is
the same validation for both.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Move cert validation per specialized channel</title>
<updated>2026-03-19T20:31:08Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-04T17:56:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8507c3b3948c0fb6566b6748fe84eea0039afcd8'/>
<id>urn:sha1:8507c3b3948c0fb6566b6748fe84eea0039afcd8</id>
<content type='text'>
Remove the last part from check_internal() that is specific to an
initiator channel.

At this commit, all three specialized channel do the verify process
within their own verify() function.

The client and relay initiator both look at the TLS cert (code
duplication unfortunately). And the relay responder looks at the
LINK_AUTH cert extracting the peer KP_link_ed key for validation.

The CERTS cell is removed from UnverifiedChannel as it is now only
useful within the verification process which is now specialized.

A series of TODO(relay) is added to point out the current problem and
how to fix them.

The next step is to create an UnverifiedInitiatorChannel that will hold
the verity_tls_cert() function and peer cert information which is only
relevant to an initiator. This will remove code duplication.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>tor-cell: rename `RestrictedMsg::restricted_cmds()` to `cmds_for_logging()`</title>
<updated>2026-03-04T16:41:47Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2026-03-04T16:41:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2fe736be056898507367c83f2b56c594b6b032bd'/>
<id>urn:sha1:2fe736be056898507367c83f2b56c594b6b032bd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: small code cleanup</title>
<updated>2026-03-04T03:42:20Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2026-03-04T03:28:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=43a5143ed137ca547d1f0f4e667e2496af8ba0ec'/>
<id>urn:sha1:43a5143ed137ca547d1f0f4e667e2496af8ba0ec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: improve error messages using `RestrictedMsg`</title>
<updated>2026-03-04T03:42:20Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2026-03-04T03:25:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f9019cec1492bde330249dbcca037991c2def72f'/>
<id>urn:sha1:f9019cec1492bde330249dbcca037991c2def72f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: improve error messages during handshake</title>
<updated>2026-03-04T02:55:39Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2026-03-04T02:55:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=12d36d99d66719f04c0f8aab6d51d307aeba2d21'/>
<id>urn:sha1:12d36d99d66719f04c0f8aab6d51d307aeba2d21</id>
<content type='text'>
</content>
</entry>
</feed>
