Commit Graph

8112 Commits

Author SHA1 Message Date
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
Nick Mathewson 60698cc6d5 Create a stub for a minimal demo client program.
For now, it's set up to just use a chutney network, so I don't
cause major drama with the real network.

I'll be working on this in parallel with proto and netdir
improvements, until it works.
2020-09-08 16:37:16 -04:00
Nick Mathewson e40a63c013 netdir: add the ability to add authorities from a chutney directory. 2020-09-08 14:34:43 -04:00
Nick Mathewson 92830810d5 netdir: Add an extra day's tolerance to consensus timeouts 2020-09-08 14:05:22 -04:00
Nick Mathewson d840bbbf64 TimerangeBound: add functions to extend the tolerances
(This seems much cleaner than baking extra tolerances into the
"true" validity intervals")
2020-09-08 14:01:26 -04:00
Nick Mathewson 8ef0098716 Refactor timerangebound to unwrap bounds earlier.
This will make them easier to adjust
2020-09-08 13:54:01 -04:00
Nick Mathewson e31652afe1 Bugfix: parse ed25519 ids right in mds 2020-09-08 13:30:16 -04:00
Nick Mathewson b5ad25e0d4 Netdir: a few more accessors 2020-09-08 12:56:45 -04:00
Nick Mathewson 17217a7dfa netdoc: add a few accessors 2020-09-07 18:07:34 -04:00
Nick Mathewson a4f1b27334 Fix clippy warnings; improve key type for consensus. 2020-09-07 17:27:29 -04:00
Nick Mathewson 3df3198363 RSAIdentity: Better Display and Debug. 2020-09-07 17:15:03 -04:00
Nick Mathewson b6a3642903 netdoc: ignore bad entries in families.
Some of these are nicknames, which we can safely ignore.
2020-09-07 16:57:57 -04:00
Nick Mathewson 919a7c5970 Start on a 'netdir' crate to wrap netdoc.
For now, this assumes an existing Tor cache directory.
2020-09-07 16:53:06 -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 8db525dab4 tor-bytes: Add initial support for the bytes crate 2020-09-05 10:07:23 -04:00
Nick Mathewson b679ab216c Make MDConsensus also follow the checkable pattern. 2020-09-03 16:06:45 -04:00
Nick Mathewson fbb35dc72a Port authcert to use tor_checkable. 2020-09-03 15:02:36 -04:00
Nick Mathewson b3358673b5 Migrate certificate and routerdesc checking to tor-checkable
Now these types are parsed and returned wrapped inside a checkable
object.
2020-09-03 14:45:46 -04:00
Nick Mathewson 63adba1744 checkable: Add a simple type for self-signed objects. 2020-09-03 11:13:07 -04:00
Nick Mathewson 4ec97aa613 llcrypto: Define a "ValidatableSignature" type
This type wraps a signature, a public key, and the signed object.
It's meant to be useful for implementing SelfSigned objects.
2020-09-03 10:34:40 -04:00