aboutsummaryrefslogtreecommitdiff
path: root/tor-proto/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix documentation warnings.Nick Mathewson2021-05-051-1/+3
|
* Add trait_duplication_in_bounds warning.Nick Mathewson2021-05-031-0/+1
|
* Add unseparated_literal_suffix lint, and fix it.Nick Mathewson2021-05-039-11/+12
|
* Add a few more clippy warningsNick Mathewson2021-05-031-0/+5
|
* 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.
* note a small divergence in circuit id probing behavior.Nick Mathewson2021-04-291-0/+2
|
* Remove pin_project usage in tor-proto.Nick Mathewson2021-04-282-53/+45
| | | | Turns out we didn't need it.
* Add some more clippy warnings to our list.Nick Mathewson2021-04-271-2/+7
|
* Enforce (and obey) clippy lints about exhaustive enums, structs.Nick Mathewson2021-04-271-0/+3
| | | | | | | | These lints force us to declare our exported enums and exhaustive-looking structs as non-exhaustive (so that we can add to them in the future without breaking our API) or to explicitly disable the warning for a given enum/struct (to say that we _intend_ for additions to be a breaking change).
* cargo fix --edition-idiomsNick Mathewson2021-04-261-7/+7
|
* Refactor and simplify ChanMgr to use AbstractChanMgr.Nick Mathewson2021-04-231-0/+5
|
* Merge branch 'hs3_ntor_squashed'Nick Mathewson2021-04-022-0/+529
|\
| * hs_ntor: add a disclaimer and put it behind a feature.Nick Mathewson2021-04-022-0/+8
| |
| * First draft of HS Ntor implementation.George Kadianakis2021-04-022-0/+521
| |
* | Fix a rust 1.51 warning: remove a semicolonNick Mathewson2021-04-021-1/+1
|/
* Resolve rustdoc warnings.Nick Mathewson2021-03-291-1/+1
|
* Fix a bunch more new clippy lints in Rust 1.51Nick Mathewson2021-03-292-2/+1
| | | | | | | | The major types are: * You implemented Into when you should have implemented From. * You sliced a slice when you didn't have to. * You said Ok(x?) when you could have said x. * You said Vec::new(); push(); push(); when you could have said vec![].
* Fix Rust-1.51 clippy warnings about acronyms in camel case.Nick Mathewson2021-03-299-60/+60
| | | | This is painful, but we shouldn't have to do it again.
* Rename Rsa{Identity,Signature} to fix clippy warning.Nick Mathewson2021-03-294-20/+20
|
* Check for channel match in create_firsthop_ntor().Nick Mathewson2021-03-242-6/+21
| | | | | | This way we won't even try sending the CREATE2 cell unless the Ed25519 identity we know for the channel matches the provided CircTarget.
* Add a "this crate has no timeouts" comment to tor-proto.Nick Mathewson2021-03-241-3/+6
|
* Move stream timeout logic into tor-client.Nick Mathewson2021-03-242-158/+134
| | | | | | | | | | This is consistent with the other pieces of tor-proto, which do not handle timeouts on their own. It also lets us remove tor-rtcompat as a dependency from tor-proto, and simplify some of the test cases to use async_test. This commit unindents a lot of test code; use git's "-b" flag to read the parts that matter.
* Add tests for correct incoming sendme handling.Nick Mathewson2021-03-222-5/+207
| | | | | | At this point I'm going to pause writing tor-proto tests for a little while and think about refactoring that could make these tests simpler. I'm doing way too much copy-paste here.
* Extend the begindir test to exchange data on the stream.Nick Mathewson2021-03-191-3/+44
|
* Introduce a helper to tor_proto::circuit testsNick Mathewson2021-03-191-44/+24
|
* Add a compatibility layer so we can upgrade rand_core.Nick Mathewson2021-03-181-5/+6
| | | | | | dalek-crypto is stuck on rand_core 0.5.1, so we've been stuck too. This commit introduces a compatibility module so that we can wrap new rand_core instances to make them backward compatible.
* circuit: Add a test for a bad crypto handshake.Nick Mathewson2021-03-161-0/+13
|
* circuit: tests for different undesired responses to EXTEND.Nick Mathewson2021-03-161-3/+93
|
* circuit: improve errors on bad extended2Nick Mathewson2021-03-161-4/+11
|
* Refactor circuit reactor for testing.Nick Mathewson2021-03-161-1/+6
|
* Test for Channel::check_matchNick Mathewson2021-03-161-0/+39
|
* Merge remote-tracking branch 'origin/mr/21'Nick Mathewson2021-03-122-7/+4
|\
| * Avoid a slice copy in send_relay_cell().George Kadianakis2021-03-122-7/+4
| | | | | | | | Convert slice to array in the parent function instead of copying.
* | Better management for END cells in streams.Nick Mathewson2021-03-105-27/+34
| |
* | Box the buffer in DataWriterImpl.Nick Mathewson2021-03-101-3/+2
| |
* | Remove now-unused methods from DataStream and its allies.Nick Mathewson2021-03-101-36/+0
| |
* | Treat StreamClosed as indicating no error.Nick Mathewson2021-03-101-3/+7
| | | | | | | | This is wrong, but less wrong than the other way around.
* | Use AsyncRead and AsyncWrite in our proxy implementationNick Mathewson2021-03-101-0/+2
| |
* | Make DataStream implement AsyncRead and AsyncWrite.Nick Mathewson2021-03-101-1/+27
| |
* | Implement AsyncWrite for DataWriter.Nick Mathewson2021-03-101-24/+155
| |
* | Revise DataReader to implement AsyncRead.Nick Mathewson2021-03-101-23/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The tricks I needed here turned out to be: * I needed to store the future returned by read_cell() while it is returning Poll::Pending. * Since the type of that future is secret, I needed to put it in a Box<dyn Future>. * But since that future holds a reference to the DataReader, that would create a self-referential structure if we tried to store the DataReader and the future at the same time. So instead, I had to make an enum() that either holds a DataReader directly, or holds the future that will give us back the DataReader when it's done. (I also had to change the read_cell() function so that it takes ownership of the DataReader, and returns it when it's finished.) (Daniel Franke explained how to do this.) * Finally, I couldn't figure out how to change the enum's type in-place, so I had to wrap it in an Option<>. (Daniel Franke says this isn't actually necessary.) I've noted a couple of places in the read code where I want to handle errors and closes more carefully.
* | Rearrange DataStream code a bit and add an internal layer of indirectionNick Mathewson2021-03-101-36/+56
| |
* | Make note_ended private on RawCellStream.Nick Mathewson2021-03-102-8/+18
| |
* | Move DataStream into its own module.Nick Mathewson2021-03-102-204/+212
| |
* | Move ResolveStream to its own module.Nick Mathewson2021-03-102-35/+42
| |
* | Implement From<tor_proto::Error> for std::io::ErrorNick Mathewson2021-03-101-0/+23
| |
* | Move RawCellStream into its own module.Nick Mathewson2021-03-102-86/+106
| |
* | Rename TorStream => RawCellStreamNick Mathewson2021-03-102-20/+20
| |
* | Refactor DataStream constituents a bit.Nick Mathewson2021-03-091-33/+93
|/ | | | | | | | | These new (internal so far) APIs correspond more closely to what we'll need for AsyncRead and AsyncWrite. We also make write methods take a mutable reference to self, since that seems to be (closer to) what the AsyncRead/AsyncWrite code expects.
* Make a few async_test tests work correctly again.Nick Mathewson2021-03-021-33/+35
| | | | | | For these, we need to call tor_rtcompat::task::block_on() directly, since they would crash with tokio enabled. Perhaps down the line we should look for a better fix here.