Commit Graph

342 Commits

Author SHA1 Message Date
Nick Mathewson 2fb71d2b13 Refactoring around our 509-byte array type. 2020-09-12 15:47:12 -04:00
Nick Mathewson 74798337dd Ntor handshake (first hop) is go. 2020-09-11 20:00:26 -04:00
Nick Mathewson e10fc436a9 Wrap ntor handshake in appropriate trait. 2020-09-11 19:45:15 -04:00
Nick Mathewson b2c2fb66c9 Parameterize the circuit create code. 2020-09-11 19:35:38 -04:00
Nick Mathewson b29f9f0772 Make create_fast implementation a little more generic. 2020-09-11 19:15:27 -04:00
Nick Mathewson a4697e4528 For circuits: Implement first hop create via create_fast. 2020-09-11 19:00:55 -04:00
Nick Mathewson a62717690b proto: add minimal (raw) circuit support.
This is about enough to make a circuit, send a create_fast cell, and
get a created_fast cell back.
2020-09-11 15:10:34 -04:00
Nick Mathewson f20eb2f43f proto::channel: add piping to move cells around.
There's a "reactor" task to move cells to the appropriate circuit,
and a "send_cell" to send a cell directly.

This is client-only for now.
2020-09-11 13:58:05 -04:00
Nick Mathewson 49bbb4baa6 Turn channel into a handle-to-inner type.
I think I'll likely be refactoring this a _bunch_ before I actually
get to use this.
2020-09-10 13:19:39 -04:00
Nick Mathewson 812056d663 Move channel handshake into its own module. 2020-09-10 12:43:55 -04:00
Nick Mathewson ee71abe560 Pare down and sort dependencies 2020-09-09 19:17:49 -04:00
Nick Mathewson 9f30b47cb7 Run cargo upgrade, except for stream-cipher. 2020-09-09 19:06:00 -04:00
Nick Mathewson e95dec2437 cargo fix --edition-idioms 2020-09-09 18:59:04 -04:00
Nick Mathewson 34843f1fde Add some missing documentation 2020-09-09 18:58:33 -04:00
Nick Mathewson e02255ec00 Also RSA identities on channel handshakes
This took a good bit of hacking, including a kludge to extract an
RSA subject key from an x509 cert, since we didn't have a good way
to do that.
2020-09-09 18:08:33 -04:00
Nick Mathewson 8d01a0a808 Implement most of client-side channel cert validation. 2020-09-09 16:19:42 -04:00
Nick Mathewson e395ad5801 Declare Into<ChanCell> for channel messages without circids 2020-09-09 14:38:16 -04:00
Nick Mathewson e45e6f5954 Work on client channel handshake: mostly done, except for verification 2020-09-09 14:32:41 -04:00
Nick Mathewson 875e932898 New "linkspec" module to encapsulate info needed to connect/extend. 2020-09-08 20:43:15 -04:00
Nick Mathewson 541b6fa55f relaycell: slight error cleanup 2020-09-07 12:25:41 -04:00
Nick Mathewson 6456653941 relaycell: move cmd into Unrecognized. 2020-09-07 12:19:19 -04:00
Nick Mathewson 010d93f453 proto::relaycell: documentation and light refactoring 2020-09-07 12:14:23 -04:00
Nick Mathewson b91f6b2cbd rename relaycell stuff to its own module; rename a bit 2020-09-06 22:01:15 -04:00
Nick Mathewson 4266aa7d12 proto: Finish documenting chancell 2020-09-06 21:49:30 -04:00
Nick Mathewson 7095192063 proto: small err cleanups 2020-09-06 17:50:06 -04:00
Nick Mathewson b54a960f3d proto: make write_body_onto destructive. That might help down the road 2020-09-06 17:20:02 -04:00
Nick Mathewson ae1c813a70 Reinstate ChanCell as a meaningful type. 2020-09-06 17:15:07 -04:00
Nick Mathewson e749e2bc27 proto: major refactor to channel cells
The protocol is now based around a message-oriented scheme intended
to use futures_codec, which in turn uses BytesMut.  The transition
to BytesMut is incomplete, and we're not nearly so zero-copy as
intended.  We should think about that.
2020-09-06 16:00:14 -04:00
Nick Mathewson 4b75c51882 Run cargo-upgrade. 2020-08-28 18:14:17 -04:00
Nick Mathewson 173bec26a5 Update to latest packages; ed25519 now needs signature crate traits. 2020-07-20 20:55:03 -04:00
Nick Mathewson 7bd7e7ec7d Run cargo fix --edition-idioms 2020-06-26 13:17:14 -04:00
Nick Mathewson c602883881 Use "cargo upgrade" from cargo-edit to list current versions 2020-06-12 21:06:07 -04:00
Nick Mathewson 6264041b77 update to use latest rust-crypto traits and modules 2020-06-10 14:16:07 -04:00
Nick Mathewson 86894926aa tor-proto: use caret_int!() for cell and relay commands. 2020-05-15 16:27:03 -04:00
Nick Mathewson 9c62d15846 tor-proto: Simplify ct::lookup API. 2020-05-10 12:10:16 -04:00
Nick Mathewson 240badb20b Document most of tor-proto
(except for the worst parts that need refactoring the most)
2020-05-09 16:25:17 -04:00
Nick Mathewson 11abdcbf3e tor-proto: Fix a logic error in KDF-TOR implementation. 2020-05-09 14:01:48 -04:00
Nick Mathewson 641576aa44 Use links for traits in llcrypto docs 2020-05-08 22:32:17 -04:00
Nick Mathewson f24ddf0682 Upgrade to a modern version of "sha-1".
Apparently the "sha1" crate doesn't implement the RustCrypto
API, but the "sha-1" crate does.
2020-05-08 22:32:17 -04:00
Nick Mathewson 75a1269429 make id field in RSAIdentity private 2020-05-08 22:32:17 -04:00
Nick Mathewson 3c7f75302b Stop re-exporting traits from tor-llcrypto. It does not help. 2020-05-08 22:32:17 -04:00
Nick Mathewson bbcbf47902 Fresh git repository for work on "arti"
Arti is a rust tor implementation.  It's project I've been working
on for a few months now, in weekends and in spare time.  It doesn't
speak the tor protocol yet, and it doesn't connect to the network at
all.

It needs much more documentation and testing, but I'm just about
ready to show it to others.  See the README.md for a description of
what is there and what isn't.
2020-05-07 19:58:14 -04:00