Commit Graph

4689 Commits

Author SHA1 Message Date
Nick Mathewson dcc155027d stop exposing rsa::errors::Result. 2020-09-13 13:04:19 -04:00
Nick Mathewson fe5a05497f Add unit test for ValidatableEd25519Signature 2020-09-13 12:41:59 -04:00
Nick Mathewson b3acc7f90f caret tests: Test debug output for caret_enum 2020-09-13 12:24:53 -04:00
Nick Mathewson 2040db71d0 Add test vectors for curve25519->ed25519 parts of llcrypto
Also add a terminating NUL byte to a derivation string, to ensure
that our results match Tor's results.  (This does not actually serve
a purpose FWICT.)
2020-09-13 12:10:56 -04:00
Nick Mathewson 6c4944ab3e llcrypto: Fix a bug in ed25519->curve25519 secret key conversion
We were taking the sign bit from the _secret_ key, which is totally
incorrect.  Instead it needs to be taken from the _public_ key.

Additionally, add a unit test for ed25519->curve25519 code.
2020-09-13 12:10:56 -04:00
Nick Mathewson 8fee269f94 llcrypto: tests for rsa kludge 2020-09-13 12:10:56 -04:00
Nick Mathewson 4fde455717 More tests for caret_int. 2020-09-13 09:19:12 -04:00
Nick Mathewson 624a70d22b yet more readme updtes 2020-09-13 08:49:59 -04:00
Nick Mathewson d4281b110e Add documentation for tor-netdir crate 2020-09-13 08:27:55 -04:00
Nick Mathewson 3ef7f2bb3d more readme tweaks 2020-09-12 21:47:55 -04:00
Nick Mathewson c52bcfd1d7 Explain the demo in the readme. 2020-09-12 21:46:32 -04:00
Nick Mathewson ee9b871bc5 Make client-demo launch a request to www.torproject.org:80 2020-09-12 21:32:00 -04:00
Nick Mathewson 02fc8b2528 Implement extend2/extended2 handshake.
This is not a production-ready implementation: it will break if a
circuit is used for anything while an extend is pending.

Client-demo can now build 3-hop circuits.
2020-09-12 20:48:07 -04:00
Nick Mathewson df0ebf857f Make more types implement Debug. 2020-09-12 20:45:59 -04:00
Nick Mathewson 7a72e093f4 tor_bytes::Reader: fix a bug in truncate. 2020-09-12 20:44:57 -04:00
Nick Mathewson a9181131d2 Fix a bug in encoding extend2 cells. 2020-09-12 20:44:25 -04:00
Nick Mathewson dc287d4457 WIP: extend. 2020-09-12 17:01:15 -04:00
Nick Mathewson d1039dda9b Simple functions to send and receive relay cells. 2020-09-12 16:25:10 -04:00
Nick Mathewson 3e342a69ae Add a function to pad relay cells. 2020-09-12 15:55:04 -04:00
Nick Mathewson 2fb71d2b13 Refactoring around our 509-byte array type. 2020-09-12 15:47:12 -04:00
Nick Mathewson c978480aae more todo edits 2020-09-12 15:46:38 -04:00
Nick Mathewson 341e557b4c Revise TODO; add some milestones. 2020-09-12 14:26:26 -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 567af1a82e update readme 2020-09-09 19:27:47 -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 9a20a6244a checkable: documentation fix. 2020-09-09 18:06:32 -04:00
Nick Mathewson b7b5d92847 Fix bogus docs in ll::pk::rsa 2020-09-09 16:58:35 -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 85bcf9f31b netdir: downgrade a log 2020-09-09 11:11:29 -04:00
Nick Mathewson fb005dc744 client-demo: do a TLS handshake. 2020-09-09 11:05:58 -04:00
Nick Mathewson 1f5d758dc3 netdir: look in right path for cached-microdescs.new 2020-09-09 10:55:34 -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 0fc85598d1 rename weightfn variants 2020-09-08 19:57:12 -04:00
Nick Mathewson 48b9510caa Add a handy function for picking a random relay. 2020-09-08 17:50:08 -04:00
Nick Mathewson 8768222acb Start on accessors for relay weight. 2020-09-08 17:20:46 -04:00
Nick Mathewson fc5a1b7908 add emacs tmpfiles to gitignore 2020-09-08 16:53:20 -04:00