summaryrefslogtreecommitdiff
path: root/tor-proto/src/channel/handshake.rs
Commit message (Collapse)AuthorAgeFilesLines
* Add the "unreachable_pub" lint.Nick Mathewson2021-05-181-7/+7
| | | | | | This is a somewhat obnoxious change in its scope and requirements, but it makes it easier to understand what the real public and private parts of our APIs are.
* Prefer "relay" to "server" when appropriate.Nick Mathewson2021-05-181-2/+2
|
* Add unseparated_literal_suffix lint, and fix it.Nick Mathewson2021-05-031-1/+1
|
* Make `now` an argument when verifying a channel.Nick Mathewson2021-04-301-4/+7
| | | | | It turns out that we want to take `now` from the Runtime, to make higher level code testable.
* Fix Rust-1.51 clippy warnings about acronyms in camel case.Nick Mathewson2021-03-291-1/+1
| | | | This is painful, but we shouldn't have to do it again.
* Rename Rsa{Identity,Signature} to fix clippy warning.Nick Mathewson2021-03-291-5/+5
|
* Migrate from futures_codec to asynchronous_codec.Nick Mathewson2021-01-151-0/+1
| | | | | | | | asynchronous_codec is a fork of futures_codec that is up-to-date on its dependencies. This migration allows us to upgrade to the current version of the bytes crate.
* Rename LogId -> UniqId.Nick Mathewson2020-12-011-22/+22
|
* Refactor first-hop handling types a bitNick Mathewson2020-11-171-2/+6
| | | | | | This lets us have the notion of "get the first hop of a path as some kind of a chantarget", which will make it easier to write other path types.
* Make the Arc-ness of channels more explicit.Nick Mathewson2020-11-121-1/+2
| | | | | | Previously every channel was a secret Arc<>, which I think is bad style, and which stopped us from using weak references in other places.
* Remove duplication of ipaddr argument in handshake.Nick Mathewson2020-10-291-13/+19
|
* Improve documentation in tor-protoNick Mathewson2020-10-261-2/+1
|
* Use from_bytes name for Ed25519IdentityNick Mathewson2020-10-251-2/+1
|
* channel: Refactor the point when we split the framed codec.Nick Mathewson2020-10-251-3/+10
| | | | | | We used to do this during creating the channel in Channel::new, but now we do it one step before, so that it's easier to construct channels for testing.
* Test for finish-handshake functionNick Mathewson2020-10-231-0/+18
|
* handshake: tests for invalid signaturesNick Mathewson2020-10-231-1/+49
|
* Add tests for handshakes certifying the wrong thingNick Mathewson2020-10-231-0/+53
|
* Tests for handshakes with missing certsNick Mathewson2020-10-231-10/+52
| | | | Also handle tor_cell::Error::ChanProto better.
* Test a trivial succeeding case of link cert validationNick Mathewson2020-10-211-12/+72
|
* Fix a security issue (!) in link handshake validation.Nick Mathewson2020-10-211-1/+1
| | | | | | | | When making sure that the peer had the right RSA identity, we were comparing the RSA identity with itself, not with the RSA identity we expected. Found via unit testing (!).
* Infrastructure for testing handshake cert-validation codeNick Mathewson2020-10-211-1/+61
|
* More tests for handshake connect functionNick Mathewson2020-10-211-26/+136
|
* Start a basic test for the first part of the handshake.Nick Mathewson2020-10-211-0/+45
|
* Add reasonable logging (I hope!) to channelNick Mathewson2020-10-201-11/+73
|
* Add and use remaining CertType values in tor-certNick Mathewson2020-10-191-2/+2
|
* Improvements to Relay type in tor-netdir.Nick Mathewson2020-10-191-1/+1
| | | | | | | | | | | Now, a Relay is always valid. This required some changes to the API: all_relays() has to return a new UncheckedRelay type that might or might not be valid, and the functions on Relay and ChanTarget that return ed25519 identities need to return an Ed25519Identity, not an ed25519::PublicKey. This change required some new encoding/decoding/conversion functions on Ed25519Identity.
* Mark must-resolve XXXX issues with "XXXXM3".Nick Mathewson2020-10-181-2/+2
| | | | | | | | | | "M3" is for "milestone 3" -- my target to fix the technical debt that I think will be bad if we ship even a pre-alpha with it. These aren't necessarily _all_ must-resolve, but they're all must-look-at. Closes #15
* Document all private members in tor-protoNick Mathewson2020-10-131-0/+4
|
* Use batch verification in client<->relay handshake.Nick Mathewson2020-10-021-7/+19
|
* Enable batch ed25519 verification.Nick Mathewson2020-10-021-0/+1
|
* Rename remaining get_ accessorsNick Mathewson2020-09-281-3/+3
|
* tor_cert: rename accessorsNick Mathewson2020-09-281-3/+3
|
* Rename some identifiers in tor-linkspec.Nick Mathewson2020-09-281-5/+5
| | | | By convention, rust accessor functions don't start with 'get'.
* Split the cell-handling parts of tor-proto into a new crate.Nick Mathewson2020-09-261-2/+4
|
* Lower our "#[allow(dead_code)]" decl in tor_proto."Nick Mathewson2020-09-251-0/+1
|
* More documentation for channel, circuit, stream.Nick Mathewson2020-09-211-5/+37
|
* Start implementing streams and circuit-level reactors.Nick Mathewson2020-09-211-6/+6
| | | | | | Also, revise nearly all of the circuit/channel interaction to actually send relay cells to the right place and do sensible things with them.
* De-parameterize channel and circuitNick Mathewson2020-09-191-7/+7
| | | | | | By putting the cell-sink in a box, we can get rid of the need for having everything that uses a channel or a circuit know what kind of underlying TLS implementation it has.
* proto::channel: add piping to move cells around.Nick Mathewson2020-09-111-4/+10
| | | | | | | 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.
* Turn channel into a handle-to-inner type.Nick Mathewson2020-09-101-4/+2
| | | | | I think I'll likely be refactoring this a _bunch_ before I actually get to use this.
* Move channel handshake into its own module.Nick Mathewson2020-09-101-0/+260