| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Move counts_towards_windows() code into circuit module | Nick Mathewson | 2020-10-09 | 4 | -4/+19 | |
| | | ||||||
| * | Split information about circuit hops into inbound and outbound. | Nick Mathewson | 2020-10-09 | 2 | -61/+172 | |
| | | | | | | | | | | | | | | | | | | | Previously the circuit object owned not only the outbound crypto, but also the inbound crypto and the stream maps. That's not so great, since the reactor needs to use the inbound crypto and the stream maps all the time, whereas the circuit doesn't need them much (or at all). Moving these objects to the reactor-owned structure should let us fix the deadlock case in stream sendme handling, since the circuit reactor no longer needs to lock the circuit in order to do crypto and demultiplexing. It should also speed up the code a bit, since it doesn't need to grab the circuit lock nearly so often as before. This change forced me to add a couple of new reactor CtrlMsg values, since the circuit can no longer add streams and layers directly. I think it will still be a performance win, though. | |||||
| * | Split client relay crypto into separate directions | Nick Mathewson | 2020-10-09 | 3 | -77/+179 | |
| | | | | | | I think we should have the reactor task own the reverse crypto and the circuit own the forward crypto. | |||||
| * | Use batch verification in client<->relay handshake. | Nick Mathewson | 2020-10-02 | 1 | -7/+19 | |
| | | ||||||
| * | Enable batch ed25519 verification. | Nick Mathewson | 2020-10-02 | 1 | -0/+1 | |
| | | ||||||
| * | cargo upgrade | Nick Mathewson | 2020-09-29 | 1 | -1/+1 | |
| | | ||||||
| * | Move RelayCell into a more reasonable place. | Nick Mathewson | 2020-09-29 | 2 | -4/+4 | |
| | | ||||||
| * | Remove idmap as needlessly complex. | Nick Mathewson | 2020-09-29 | 4 | -52/+39 | |
| | | ||||||
| * | make it work on rust 1.45 | Nick Mathewson | 2020-09-28 | 1 | -1/+1 | |
| | | ||||||
| * | test vectors for cell crypto. | Nick Mathewson | 2020-09-28 | 3 | -3/+61 | |
| | | ||||||
| * | Mark most of the cell crypto code as crate-local. | Nick Mathewson | 2020-09-28 | 1 | -7/+7 | |
| | | ||||||
| * | Add a round-trip test for cell encryption. | Nick Mathewson | 2020-09-28 | 1 | -0/+74 | |
| | | ||||||
| * | Rename remaining get_ accessors | Nick Mathewson | 2020-09-28 | 7 | -40/+33 | |
| | | ||||||
| * | tor_cert: rename accessors | Nick Mathewson | 2020-09-28 | 1 | -3/+3 | |
| | | ||||||
| * | Rename some identifiers in tor-linkspec. | Nick Mathewson | 2020-09-28 | 2 | -12/+12 | |
| | | | | | By convention, rust accessor functions don't start with 'get'. | |||||
| * | Rename ExtendTarget to CircTarget. | Nick Mathewson | 2020-09-28 | 1 | -2/+2 | |
| | | ||||||
| * | Fix a few clippy issues | Nick Mathewson | 2020-09-27 | 1 | -1/+3 | |
| | | ||||||
| * | Fix some comments that reflected a misunderstanding in SENDMEs | Nick Mathewson | 2020-09-26 | 2 | -3/+3 | |
| | | | | | | I had thought that the sendme authentication things used for onion services were 32-byte; they're still only 20. | |||||
| * | Split the cell-handling parts of tor-proto into a new crate. | Nick Mathewson | 2020-09-26 | 22 | -2251/+76 | |
| | | ||||||
| * | Make sendme authentication optional. | Nick Mathewson | 2020-09-25 | 4 | -15/+43 | |
| | | | | | | | | This code deviates from current tor in that it allows missing sendme authentications only when we know we're talking to an old relay, or when we don't know the version of the relay we're talking to. | |||||
| * | Lower our "#[allow(dead_code)]" decl in tor_proto." | Nick Mathewson | 2020-09-25 | 7 | -1/+6 | |
| | | ||||||
| * | Improve documentation and lightly refactor SENDME code | Nick Mathewson | 2020-09-25 | 5 | -49/+119 | |
| | | ||||||
| * | Implement authenticated sendme output for circuit-level sendmes. | Nick Mathewson | 2020-09-25 | 3 | -6/+44 | |
| | | | | | This patch has a XXXXX kludge note in it. | |||||
| * | Add a bad workaround for a deadlock: we should look for a better one. | Nick Mathewson | 2020-09-25 | 2 | -4/+14 | |
| | | ||||||
| * | Fix encoding/decoding of authenticated sendme. | Nick Mathewson | 2020-09-25 | 1 | -4/+22 | |
| | | ||||||
| * | Try to get sendme crypto working | Nick Mathewson | 2020-09-25 | 3 | -27/+62 | |
| | | | | | | | | | There's a problem, though: this code assumes that tags are 20 bytes long whereas actually the tag type is part of the crypto layer info. So maybe in the long term we need to move the queue of tags from the send window into being part of the crypto layers. | |||||
| * | Incomplete implementation of circuit SENDME handling. | Nick Mathewson | 2020-09-25 | 5 | -26/+86 | |
| | | | | | | | This is incomplete because the cell crypto code doesn't actually expose tags yet, and because it demands tags unconditionally, without caring about the linkspec protocol version. | |||||
| * | Attempted implementation of stream sendme cells | Nick Mathewson | 2020-09-25 | 6 | -26/+100 | |
| | | ||||||
| * | Initial work on a sendme backend. | Nick Mathewson | 2020-09-25 | 2 | -0/+152 | |
| | | | | | | Parameterized for authenticated/unauthenticated operation, and operation on circuits and streams. | |||||
| * | Initial error cleanup on streams/circuits | Nick Mathewson | 2020-09-25 | 4 | -20/+36 | |
| | | ||||||
| * | Migrate ClientMain to byte-oriented API. | Nick Mathewson | 2020-09-24 | 2 | -14/+25 | |
| | | ||||||
| * | Try to make a send/receive style API for streams. | Nick Mathewson | 2020-09-24 | 3 | -3/+132 | |
| | | ||||||
| * | Add support for RELAY_END cells. | Nick Mathewson | 2020-09-24 | 5 | -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 Mathewson | 2020-09-23 | 1 | -1/+6 | |
| | | ||||||
| * | Fuse input streams on creation. | Nick Mathewson | 2020-09-23 | 2 | -10/+8 | |
| | | ||||||
| * | Turn IdMap into an extension trait. | Nick Mathewson | 2020-09-23 | 4 | -97/+38 | |
| | | | | | | Also, use the "right" (cyclic, potentially expensive) algorithm for stream IDs. | |||||
| * | Run cargo upgrade | Nick Mathewson | 2020-09-21 | 1 | -3/+2 | |
| | | ||||||
| * | turn hopnum into a first-class type | Nick Mathewson | 2020-09-21 | 3 | -14/+41 | |
| | | ||||||
| * | Add is_zero for ID types. | Nick Mathewson | 2020-09-21 | 3 | -5/+22 | |
| | | ||||||
| * | Fix some errors; document some places where error handling is bogus | Nick Mathewson | 2020-09-21 | 5 | -8/+37 | |
| | | ||||||
| * | More documentation for channel, circuit, stream. | Nick Mathewson | 2020-09-21 | 8 | -92/+372 | |
| | | ||||||
| * | Start implementing streams and circuit-level reactors. | Nick Mathewson | 2020-09-21 | 12 | -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_val | Nick Mathewson | 2020-09-20 | 1 | -0/+49 | |
| | | ||||||
| * | Refactor accetps_circid_val to be less wonky. | Nick Mathewson | 2020-09-20 | 1 | -9/+17 | |
| | | ||||||
| * | Move is_recognized function into caret. | Nick Mathewson | 2020-09-20 | 1 | -23/+0 | |
| | | ||||||
| * | Rename StreamCmd to RelayCmd | Nick Mathewson | 2020-09-20 | 3 | -41/+40 | |
| | | ||||||
| * | Improve shutdown support for channel. No idea if it works. | Nick Mathewson | 2020-09-20 | 1 | -14/+7 | |
| | | ||||||
| * | rename a field in RelayCell | Nick Mathewson | 2020-09-20 | 1 | -12/+9 | |
| | | ||||||
| * | Create a StreamID->Stream map type. | Nick Mathewson | 2020-09-20 | 7 | -42/+139 | |
| | | | | | | Also extract the shared part of CircMap and StreamMap into a new IdMap type. | |||||
| * | De-parameterize channel and circuit | Nick Mathewson | 2020-09-19 | 3 | -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. | |||||
