summaryrefslogtreecommitdiff
path: root/tor-proto
Commit message (Collapse)AuthorAgeFilesLines
...
* Initial error cleanup on streams/circuitsNick Mathewson2020-09-254-20/+36
|
* Migrate ClientMain to byte-oriented API.Nick Mathewson2020-09-242-14/+25
|
* Try to make a send/receive style API for streams.Nick Mathewson2020-09-243-3/+132
|
* Add support for RELAY_END cells.Nick Mathewson2020-09-245-20/+170
| | | | | | | | | | | | | | | | | | | | This was a hard one. I need to make sure that we send an END cell when the stream is dropped. But we can't call an .await from inside the drop() function, since drop() isn't async, and we don't have an executor. Fortunately, you can call send() on a oneshot::Sender without having to await on it, so that's the obvious thing to put in drop(). But we need some way to make sure that the oneshot::Receiver is given to the reactor, and is .awaited. For that, we needed a control channel. And the reactor needs to treat the control channel and the close messages as equally important. So that's how I wound up with a Fuse<Select<mpsc::Receiver<Result<Foo>>, SelectAll<Once<oneshot::Receiver<Foo>>>>>. I doubt that this is actually the best way to handle any of this!
* as Tor does, skip to random initial stream member.Nick Mathewson2020-09-231-1/+6
|
* Fuse input streams on creation.Nick Mathewson2020-09-232-10/+8
|
* Turn IdMap into an extension trait.Nick Mathewson2020-09-234-97/+38
| | | | | Also, use the "right" (cyclic, potentially expensive) algorithm for stream IDs.
* Run cargo upgradeNick Mathewson2020-09-211-3/+2
|
* turn hopnum into a first-class typeNick Mathewson2020-09-213-14/+41
|
* Add is_zero for ID types.Nick Mathewson2020-09-213-5/+22
|
* Fix some errors; document some places where error handling is bogusNick Mathewson2020-09-215-8/+37
|
* More documentation for channel, circuit, stream.Nick Mathewson2020-09-218-92/+372
|
* Start implementing streams and circuit-level reactors.Nick Mathewson2020-09-2112-183/+584
| | | | | | Also, revise nearly all of the circuit/channel interaction to actually send relay cells to the right place and do sensible things with them.
* Add RelayCmd::accepts_streamid_valNick Mathewson2020-09-201-0/+49
|
* Refactor accetps_circid_val to be less wonky.Nick Mathewson2020-09-201-9/+17
|
* Move is_recognized function into caret.Nick Mathewson2020-09-201-23/+0
|
* Rename StreamCmd to RelayCmdNick Mathewson2020-09-203-41/+40
|
* Improve shutdown support for channel. No idea if it works.Nick Mathewson2020-09-201-14/+7
|
* rename a field in RelayCellNick Mathewson2020-09-201-12/+9
|
* Create a StreamID->Stream map type.Nick Mathewson2020-09-207-42/+139
| | | | | Also extract the shared part of CircMap and StreamMap into a new IdMap type.
* De-parameterize channel and circuitNick Mathewson2020-09-193-38/+27
| | | | | | 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.
* Add tests for CREATE_FAST handshakeNick Mathewson2020-09-194-26/+100
|
* Add tests for failing ntor handshakes.Nick Mathewson2020-09-191-1/+51
|
* ntor: test the ClientHandshake/ServerHandshake implNick Mathewson2020-09-181-3/+4
|
* tests for kdf functions in tor_protoNick Mathewson2020-09-181-0/+127
|
* Add tests for tor_proto::util::ctNick Mathewson2020-09-181-0/+31
|
* Give up on suppressing that nightly-only clippy warningNick Mathewson2020-09-181-21/+19
|
* Resolve some nightly-only clippy warningsNick Mathewson2020-09-171-0/+2
|
* Add fuzzers for certs, netdoc, and proto.Nick Mathewson2020-09-175-1/+60
| | | | This was remarkably simple.
* Sort linkspecs in the same order as tor doesNick Mathewson2020-09-172-2/+3
|
* Make client-demo launch a request to www.torproject.org:80Nick Mathewson2020-09-122-0/+38
|
* Implement extend2/extended2 handshake.Nick Mathewson2020-09-121-0/+17
| | | | | | | 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.
* Make more types implement Debug.Nick Mathewson2020-09-121-0/+17
|
* Fix a bug in encoding extend2 cells.Nick Mathewson2020-09-121-0/+2
|
* WIP: extend.Nick Mathewson2020-09-124-17/+166
|
* Simple functions to send and receive relay cells.Nick Mathewson2020-09-124-1/+74
|
* Add a function to pad relay cells.Nick Mathewson2020-09-121-0/+28
|
* Refactoring around our 509-byte array type.Nick Mathewson2020-09-126-43/+66
|
* Ntor handshake (first hop) is go.Nick Mathewson2020-09-113-2/+56
|
* Wrap ntor handshake in appropriate trait.Nick Mathewson2020-09-111-10/+39
|
* Parameterize the circuit create code.Nick Mathewson2020-09-111-20/+45
|
* Make create_fast implementation a little more generic.Nick Mathewson2020-09-112-20/+31
|
* For circuits: Implement first hop create via create_fast.Nick Mathewson2020-09-118-24/+199
|
* proto: add minimal (raw) circuit support.Nick Mathewson2020-09-116-16/+131
| | | | | This is about enough to make a circuit, send a create_fast cell, and get a created_fast cell back.
* proto::channel: add piping to move cells around.Nick Mathewson2020-09-116-18/+337
| | | | | | | 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-102-4/+30
| | | | | 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-102-254/+272
|
* Pare down and sort dependenciesNick Mathewson2020-09-092-12/+12
|
* Run cargo upgrade, except for stream-cipher.Nick Mathewson2020-09-091-7/+7
|
* cargo fix --edition-idiomsNick Mathewson2020-09-091-1/+1
|