<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/channel/handshake.rs, branch arti-v0.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-v0.4.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.4.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-04-11T16:34:16Z</updated>
<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>
<entry>
<title>tor-proto: Remember peer information in circuit and channel</title>
<updated>2022-03-17T16:03:34Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-17T15:52:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=764930b9cd8c63a4dd59229ad6298e6b27fb375c'/>
<id>urn:sha1:764930b9cd8c63a4dd59229ad6298e6b27fb375c</id>
<content type='text'>
Each channel now remembers an OwnedChanTarget.

Each circuit now remembers a vector of OwnedChanTarget to represent
the path that it was constructed for.

Part of #415.
</content>
</entry>
<entry>
<title>proto: Refactor conversion from CodecError to Error</title>
<updated>2022-02-24T18:23:42Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-24T18:23:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d8120e1649e4e8f039666ff1c3aedff5f1310154'/>
<id>urn:sha1:d8120e1649e4e8f039666ff1c3aedff5f1310154</id>
<content type='text'>
Remove default conversion; instead use a specific conversion in each
of the two modules that need to do it.
</content>
</entry>
<entry>
<title>tor-proto: refactor handshake protocol errors to a different type</title>
<updated>2022-02-23T15:39:08Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-23T15:35:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=74a5ce863553780fadc1afb926a14cfb8426f367'/>
<id>urn:sha1:74a5ce863553780fadc1afb926a14cfb8426f367</id>
<content type='text'>
This helps the user distinguish between protocol violations that
happen when connecting to the tor network from those that happen
while connected.

Closes #358.
</content>
</entry>
<entry>
<title>tor-proto: Split IoErr  based on when it occurs</title>
<updated>2022-02-23T15:38:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-23T15:01:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=afa49eac8f45ea34a419e7a8cef7bb03026b5c75'/>
<id>urn:sha1:afa49eac8f45ea34a419e7a8cef7bb03026b5c75</id>
<content type='text'>
We want to distinguish handshake failures from errors later on in
the channel's lifetime.

Closes #359.
</content>
</entry>
</feed>
