<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/client/channel, 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-19T20:57:29Z</updated>
<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: Client channel need to consider PT for the target</title>
<updated>2026-02-12T16:11:07Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-11T15:21:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=70d7a90b37c44a9b8c19cba9fe7f45486ab53840'/>
<id>urn:sha1:70d7a90b37c44a9b8c19cba9fe7f45486ab53840</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Enforce that channel method as unique SocketAddr</title>
<updated>2026-02-12T16:11:07Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-10T20:34:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c07e10684cc8d793d082a2e4c1f6dff8fcd118e0'/>
<id>urn:sha1:c07e10684cc8d793d082a2e4c1f6dff8fcd118e0</id>
<content type='text'>
During the channel handshake, we require the peer IP address for the
canonicity check which requires the exact peer IP we are connected to.

This commit adds a function that enforces this requirement on a
ChannelMethod so anything else results in an error.

It is to basically have stronger guarantee on the channel method we use
in the handshake.

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: Add missing clock_skew() to unverified channels</title>
<updated>2026-02-04T18:22:17Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-03T16:46:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e811aa049bc8cfcf6901599c10e1307741181780'/>
<id>urn:sha1:e811aa049bc8cfcf6901599c10e1307741181780</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Make channel client to use a specific type</title>
<updated>2026-02-04T18:22:17Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-03T16:24:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=facce5b27602e88773a84372b7eaf3a7c4913c11'/>
<id>urn:sha1:facce5b27602e88773a84372b7eaf3a7c4913c11</id>
<content type='text'>
Remove the use of traits, the caller will handle the specific type.

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 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>
</feed>
