<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/channel.rs, branch arti-v1.5.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.5.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.5.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-08-28T10:54:48Z</updated>
<entry>
<title>proto: Add a circuit module shared between client and relay impls.</title>
<updated>2025-08-28T10:54:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-26T17:48:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4ee5a4abcee895e79588888f6bc8eaa6963a6ba7'/>
<id>urn:sha1:4ee5a4abcee895e79588888f6bc8eaa6963a6ba7</id>
<content type='text'>
This is just code motion (I suggest reviewing with `--color-moved`).

This also moves the implementation-agnostic parts from
`tor_proto::client::circuit` to a new `tor_proto::circuit` module.
</content>
</entry>
<entry>
<title>proto: Remove the AUTHORIZE as a parsable cell</title>
<updated>2025-08-21T15:59:37Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2025-08-21T14:52:35Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eabd0c0bfe703337e338403949721ce57c87f32e'/>
<id>urn:sha1:eabd0c0bfe703337e338403949721ce57c87f32e</id>
<content type='text'>
The AUTHORIZE cell command is simply reserved but not defined. The tor
specification, at this point in time, is allowing such cell before the
handshake starts but it is very unclear on what ordering is allowed nor
how many can are allowed.

C-tor silents drop them like VPADDING and so clearly unused. Instead of
dealing with it, simply remove its support but keeping its reserved
number.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Rename OutboundClientHandshake</title>
<updated>2025-08-20T17:22:16Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-10-03T13:21:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=483752317e321a2a9c945fcc6dead30081f401e6'/>
<id>urn:sha1:483752317e321a2a9c945fcc6dead30081f401e6</id>
<content type='text'>
Use the specification terminology which is also the same for
ChannelType.

Part of #1597

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Make the OutboundClientHandshake use new cell handler</title>
<updated>2025-08-20T17:22:16Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-10-03T13:16:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8d52396e8f6e68859508e1f8fbef7a62458857bc'/>
<id>urn:sha1:8d52396e8f6e68859508e1f8fbef7a62458857bc</id>
<content type='text'>
Use the ChannelFrame&lt;&gt; for the entirety of the outbound client handshake
that is the ClientInitiator channel type.

With this change, the codec.rs code is not needed anymore along its
CodecError as well which has been normalized onto the crate::Error
instead in order to simplify error handling and avoid duplication of
error types.

Unit tests have been modified to reflect this change of what can be done
with a channel frame. Also renamed to focus on client behavior.

Part of #1597

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Add helper functions/type for cell handling</title>
<updated>2025-08-20T17:22:16Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-10-02T18:28:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c12fe20211b087052d3a4139b7ed69eac23f48ca'/>
<id>urn:sha1:c12fe20211b087052d3a4139b7ed69eac23f48ca</id>
<content type='text'>
This type and functions will be used in the handshake process in future
commits.

Part of #1597

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Add channel cell handler</title>
<updated>2025-08-20T17:22:16Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-10-01T17:48:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=26eb7fbd647f35f598de82e7b0cdf3f55214bd05'/>
<id>urn:sha1:26eb7fbd647f35f598de82e7b0cdf3f55214bd05</id>
<content type='text'>
The handler.rs file contains a generic "ChannelCellHandler" which is
split into three different handler depending of the channel state (new,
handshaking or open).

These handlers implement Encoder/Decoder so we can give a
ChannelCellHandler to a asynchronous_codec::Framed along a TLS stream.

That cell handler is also in charge of tracking the CLOG/SLOG (see
tor-spec), running digest of cells seen, which is used to authenticate a
channel for the Relay &lt;-&gt; Relay case.

This ChannelCellHandler auto transitions as the setters function are
used. The handshake code will use this to advance the handler. Each
handler uses a MessageFilter from msg.rs in order to allow or not to
return the message.

A keen eye will notice that we can avoid encoding a message if we don't
need but we will decode all possible messages and only then allow it or
not.

The channel cell handler is not used at this commit.

Part of #1597

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Add restricted channel message sets</title>
<updated>2025-08-20T16:41:03Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-09-30T18:39:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=896f3da6006549a46773e3a4e90275042bc41197'/>
<id>urn:sha1:896f3da6006549a46773e3a4e90275042bc41197</id>
<content type='text'>
Add the msg.rs file containing all the allowed message sets based on the
channel type and direction. They are also namespaced by link protocol
version.

Unused at this commit. They will be used by the channel reactor along
the channel type and link protocol version in order to know if the
message is allowed or not. See is_allowed() helper function in this
commit.

Part of #1597

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Add ChannelType enum</title>
<updated>2025-08-20T16:41:03Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-09-30T18:37:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ff4b08075d3d1799dd5ce785f0a8d0b87a140163'/>
<id>urn:sha1:ff4b08075d3d1799dd5ce785f0a8d0b87a140163</id>
<content type='text'>
The ChannelType indicates the type of channel in order to dictate which
message is allowed on it. The value use the Initiator and Responder
terminology from tor-spec documents.

At this commit, we only have client channel meaning the
"ClientInitiator" type.

In future commits, the channel type will be used by the channel reactor
to restrict which message is allowed or not.

Part of #1597

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>chan: Rename channel launch to launch_client</title>
<updated>2025-08-20T16:41:03Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2024-06-04T13:11:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ebb97da7a209af06e69a5477b8379a76a776e42e'/>
<id>urn:sha1:ebb97da7a209af06e69a5477b8379a76a776e42e</id>
<content type='text'>
Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Rename the `tunnel` module to `client`.</title>
<updated>2025-08-18T16:09:04Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-18T15:14:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1ee26f2168ee2dede8ab993ef57435334e9efabe'/>
<id>urn:sha1:1ee26f2168ee2dede8ab993ef57435334e9efabe</id>
<content type='text'>
The implementation from `tunnel` is client-specific, so we are renaming
the module accordingly. The more generic parts will be pulled into a
separate module in a future commit.
</content>
</entry>
</feed>
