<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/channel/handshake.rs, branch tor-dirmgr-v0.5.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=tor-dirmgr-v0.5.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=tor-dirmgr-v0.5.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-06-23T19:42:45Z</updated>
<entry>
<title>tor-proto: split and elaborate tor_bytes::Error instances</title>
<updated>2022-06-23T19:42:45Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-23T19:42:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=38004a4f4dd3aa99b81b6585039e81dc77c17f32'/>
<id>urn:sha1:38004a4f4dd3aa99b81b6585039e81dc77c17f32</id>
<content type='text'>
Some of these were for decoding particular objects (we now say
what kind of objects), and some were unrelated tor_cert errors that
for some reason we had shoved into a tor_bytes::Error.

There is now a separate tor_cert::CertError type, independent from
tor_cert's use of `tor_bytes::Error` for parsing errors.
</content>
</entry>
<entry>
<title>tor-proto: Split CellErr based on activity.</title>
<updated>2022-06-23T18:59:52Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-23T18:59:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=35b7b8a47ad96f5eee032fab7900b3b29bf2fa73'/>
<id>urn:sha1:35b7b8a47ad96f5eee032fab7900b3b29bf2fa73</id>
<content type='text'>
Failing to encode is fundamentally different from failing to
decode. We now treat those separately, and describe _what_ we failed
to encode or decode.
</content>
</entry>
<entry>
<title>tor-proto: clean up error names and messages</title>
<updated>2022-06-23T18:35:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-23T18:35:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=92fd9fb0dec25ddd45a4428603db99bad8d72661'/>
<id>urn:sha1:92fd9fb0dec25ddd45a4428603db99bad8d72661</id>
<content type='text'>
This avoids adding additional information for now; that will come on
the next commits.
</content>
</entry>
<entry>
<title>Plumb a SleepProvider into the channel reactor</title>
<updated>2022-06-08T10:24:26Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-06-06T15:39:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e8fc1036d3d8de0da72329071b63a64e8f5d98eb'/>
<id>urn:sha1:e8fc1036d3d8de0da72329071b63a64e8f5d98eb</id>
<content type='text'>
The channel reactor is going to want to be able to sleep so that it
can do padding, so it needs a SleepProvider.
</content>
</entry>
<entry>
<title>handshake.rs: Document the time for clock skew authentication.</title>
<updated>2022-04-11T16:34:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-11T16:31:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4efe45ce6e14672625dea392b93da9cf43c72ec1'/>
<id>urn:sha1:4efe45ce6e14672625dea392b93da9cf43c72ec1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chanmgr: bubble ClockSkew up through the Error object.</title>
<updated>2022-04-07T14:15:28Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-07T14:01:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9160b55c57e9b2d68b82059139a2be0dd7954b8a'/>
<id>urn:sha1:9160b55c57e9b2d68b82059139a2be0dd7954b8a</id>
<content type='text'>
Fortunately, we don't need a separate type here: authenticated
clock skew can only come attached to a `tor_proto::Error`.

We also remove skew from `tor_proto::Error::HandshakeCertsExpired`,
since it would now be redundant.
</content>
</entry>
<entry>
<title>Channel: Expose our view of whether the clock is skewed, and the age</title>
<updated>2022-04-07T14:07:35Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-06T19:29:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7656ab09319aacbc8ef0e89e34a7dd5ce0ba1d85'/>
<id>urn:sha1:7656ab09319aacbc8ef0e89e34a7dd5ce0ba1d85</id>
<content type='text'>
of a channel.

At first I wanted to have this information not be a part of channels
at all, but it is a fairly tiny amount of data, and the alternatives
are pretty crufty.
</content>
</entry>
<entry>
<title>Merge branch 'netinfo-clock-skew' into 'main'</title>
<updated>2022-03-23T12:49:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-23T12:49:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=791394cd2b455646c5e8938e7592d73b28c7977b'/>
<id>urn:sha1:791394cd2b455646c5e8938e7592d73b28c7977b</id>
<content type='text'>
tor-proto: add the ability to learn clock skew from NETINFO cells

See merge request tpo/core/arti!410</content>
</entry>
<entry>
<title>tor-proto: better errors when handshake fails due to untimely certs</title>
<updated>2022-03-23T12:24:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-14T18:33:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0b2cf533ee5771fdb16255652837af69c316642e'/>
<id>urn:sha1:0b2cf533ee5771fdb16255652837af69c316642e</id>
<content type='text'>
We now check the handshake certificates unconditionally, and only
report them as _expired_ as a last resort.

(Rationale: if somebody is presenting the wrong identity from a year
ago, it is more interesting that they are presenting the wrong ID
than it is that they are doing so with an expired cert.

We also now report a different error if the certificate is expired,
but its expiration is within the range of reported clock skew.

(Rationale: it's helpful to distinguish this case, so that we can
blame the failure on possible clock skew rather than definitely
attributing it to a misbehaving relay.)

Part of #405.
</content>
</entry>
<entry>
<title>tor-proto: add a backend to detect reported clock skew.</title>
<updated>2022-03-23T12:24:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-14T15:51:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3885a2c05b64e6d071adfabdf5eb957fab001a5d'/>
<id>urn:sha1:3885a2c05b64e6d071adfabdf5eb957fab001a5d</id>
<content type='text'>
NETINFO cells, which are sent in every handshake, may contain
timestamps.  This patch adds an accessor for the timestamp in the
Netinfo messages, and teaches the tor-proto code how to compute the
minimum clock skew in the code.

The computation isn't terribly precise, but it doesn't need to be:
Tor should work fine if your clock is accurate to within a few
hours.

This patch also notes a Y2038 problem in the protocol: see
torspec#80.

Part of #405.
</content>
</entry>
</feed>
