<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-cell/src/chancell, branch arti-v2.4.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.4.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.4.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-03-30T15:00:18Z</updated>
<entry>
<title>cell: Add Authenticate::BODY_LEN as a public const</title>
<updated>2026-03-30T15:00:18Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-30T14:41:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0a2b21032adefbf3a4ffac0f51c714b9070d0102'/>
<id>urn:sha1:0a2b21032adefbf3a4ffac0f51c714b9070d0102</id>
<content type='text'>
We use this constant value when building the AUTHENTICATE cell to
optimize the memory allocation as this won't ever change.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'build_certs_refactor' into 'main'</title>
<updated>2026-03-23T14:33:56Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-03-23T14:33:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a2d2c1b8cae94fd1c1c2cfd2602ae91e0599456f'/>
<id>urn:sha1:a2d2c1b8cae94fd1c1c2cfd2602ae91e0599456f</id>
<content type='text'>
cell, proto, cert: Simplify CERTS cell building.

See merge request tpo/core/arti!3795</content>
</entry>
<entry>
<title>cell: Feature-gate API using the possibly absent EncodedCert type.</title>
<updated>2026-03-23T12:08:59Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-03-23T12:08:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4a4c94ee51e05b2952db23411968534b463fd6bf'/>
<id>urn:sha1:4a4c94ee51e05b2952db23411968534b463fd6bf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Check the AUTHENTICATE auth type that we support it</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-19T18:20:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a0443baf5eaf7ab7214576125eb3a1844f076e13'/>
<id>urn:sha1:a0443baf5eaf7ab7214576125eb3a1844f076e13</id>
<content type='text'>
As a responder, we should check the AUTHENTICATE auth type and make sure
we support it. We were not doing that, we were simply putting in our max
version.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>cell: Use Error::MissingData if Authenticate fields length is wrong</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-19T17:38:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=912353f9eed551390e8b4509b832d03c11faf427'/>
<id>urn:sha1:912353f9eed551390e8b4509b832d03c11faf427</id>
<content type='text'>
Proper error to use and better code to use checked_sub().

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>cell: Simplify the Authenticate API</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-11T17:28:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=19a53b48dbe67c8c44f53cf3f170cee3b07eb0f0'/>
<id>urn:sha1:19a53b48dbe67c8c44f53cf3f170cee3b07eb0f0</id>
<content type='text'>
Remove the is_equal_no_sig() and instead add a getter that returns a
reference to the body without the random part so it can be used to
verify the signature.

The caller now checks the equality with what it is expected.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Fix AUTHENTICATE equality check and signature check</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-11T17:19:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a93e0cd699e583152f25cb6e13845eac632a1be3'/>
<id>urn:sha1:a93e0cd699e583152f25cb6e13845eac632a1be3</id>
<content type='text'>
This fixes two things.

1. The "is_equal_no_sig()", if true, was going into the error path.

2. The signature verification is done against the body of the
   AUTHENTICATE cell that is all fields except the signature.

Next commit will change the is_equal_no_sig() to make more sense with
the "body" semantic.

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>proto: Responder channel properly validates the AUTHENTICATE cell</title>
<updated>2026-03-19T20:31:09Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-03-04T19:32:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bdda3ba7d82f8d4e856281175b87edcc6e187807'/>
<id>urn:sha1:bdda3ba7d82f8d4e856281175b87edcc6e187807</id>
<content type='text'>
It is now validated against the received KP_link_ed of the initiator
peer and we compare only the section of the AUTHENTICATE cell that we
can compare (minus random bytes and sig).

Signed-off-by: David Goulet &lt;dgoulet@torproject.org&gt;
</content>
</entry>
<entry>
<title>cell, proto, cert: Simplify CERTS cell building.</title>
<updated>2026-03-19T15:43:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-03-19T15:43:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8a4cbe020879ae011c9e02197d824cbe20e2f736'/>
<id>urn:sha1:8a4cbe020879ae011c9e02197d824cbe20e2f736</id>
<content type='text'>
Formerly we required the caller for push_cert_body to specify the
type of the cert that they were pushing.  But in nearly every case,
the certificate object that the caller is holding knows what its
own type is!  This makes the tor_proto build_certs_cell function
a bit less error-prone, since we don't have to worry about mismatch.
</content>
</entry>
<entry>
<title>proto: Implement a Canonicity struct</title>
<updated>2026-02-12T16:11:07Z</updated>
<author>
<name>David Goulet</name>
<email>dgoulet@torproject.org</email>
</author>
<published>2026-02-10T19:04:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a2a06e96313d4833bf173a8c71f989e4f2016ef9'/>
<id>urn:sha1:a2a06e96313d4833bf173a8c71f989e4f2016ef9</id>
<content type='text'>
This struct will be put in a Channel and derived from the received
NETINFO cell.

This follows the C-tor implementation for which we have two indicator of
canonicity:

1. Peer is canonical: the address they advertise in the NETINFO cell
   matches the one we see on the TCP connection.

2. Canonical to peer: the peer sees us as canonical.

Those flag will get used to select "the best" channel.

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