summaryrefslogtreecommitdiff
path: root/crates/tor-proto
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-proto: Add a TODO about recovering from reactor errors.Gabriela Moldovan2025-05-061-0/+2
| |
* | tor-proto: Ensure the leg is linked before sending the cell.Gabriela Moldovan2025-05-061-0/+5
| |
* | tor-proto: Increment last_seq_sent after sending a cell.Gabriela Moldovan2025-05-062-1/+21
| |
* | tor-proto: Specify which circuit leg to begin the stream on.Gabriela Moldovan2025-05-062-6/+13
| | | | | | | | | | | | The CtrlMsg::BeginStream is expected to contain an appropriate TargetHop (i.e. we expect the caller to ensure BeginStream request is for the right leg/hop).
* | tor-proto: Specify the leg id in RunOnceCmdInner::Send.Gabriela Moldovan2025-05-063-17/+40
| | | | | | | | Resolves a handful of TODOs.
* | tor-proto: Specify which leg to handle received SENDMEs on.Gabriela Moldovan2025-05-061-8/+12
| |
* | tor-proto: Decide which circuit leg to send cells on.Gabriela Moldovan2025-05-062-2/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, `CircuitCmd::Send` would indicate that a cell needs to be sent down on the circuit leg that returned the `CircuitCmd`, but that's no longer the case. Now, the `ConfluxSet` processes each `CircuitCmd` returned by its inner `Circuit`s, and for each command it decides whether it needs to be sent on the primary leg (if conflux is enabled and the cell counts towards conflux sequence numbers), or on the leg it was originally meant to (if conflux is disabled, or the cell doesn't count towards sequence numbers). It also modifies the target hop of the cell (because the multiplexable cells always need to be sent to the join point).
* | tor-proto: Implement conflux primary leg selection.Gabriela Moldovan2025-05-064-6/+194
| |
* | tor-proto: Add helper for getting the CircHop of the join point.Gabriela Moldovan2025-05-061-0/+12
| |
* | tor-proto: Add congestion control accessors for conflux.Gabriela Moldovan2025-05-064-1/+47
| |
* | tor-proto: Remove a resolved XXX.Gabriela Moldovan2025-05-061-4/+3
| |
* | tor-proto: Try to dequeue ooo messages in circ reactor main loop.Gabriela Moldovan2025-05-063-9/+59
| |
* | tor-proto: Add reactor cmd for buffering out-of-order messages.Gabriela Moldovan2025-05-064-6/+220
| |
* | tor-proto: Split handle_relay_msg() into two functions.Gabriela Moldovan2025-05-061-0/+12
| | | | | | | | | | Soon `handle_in_order_relay_msg()` will be called from other places too, for handling deferred out-of-order conflux messages.
* | tor-proto: Add a CtrlMsg for linking circuits.Gabriela Moldovan2025-05-062-5/+74
| |
* | tor-proto: Support adding and linking circuits in ConfluxSet.Gabriela Moldovan2025-05-063-4/+195
| |
* | tor-proto: Add function for checking if a circuit has any open streams.Gabriela Moldovan2025-05-061-0/+11
| |
* | tor-proto: Add helper for checking if cmd counts towards conflux seqnos.Gabriela Moldovan2025-05-061-0/+51
| | | | | | | | This is a direct translation of C Tor's `conflux_should_multiplex()`.
* | tor-proto: Handle conflux cells in the reactor.Gabriela Moldovan2025-05-061-0/+39
| |
* | tor-proto: Add a TODO about adding a conflux MetaCellHandler.Gabriela Moldovan2025-05-061-0/+5
| |
* | tor-proto: Add Circuit function for beginning the conflux handshake.Gabriela Moldovan2025-05-061-0/+29
| |
* | tor-proto: Add a ConfluxMsgHandler to Circuit.Gabriela Moldovan2025-05-063-0/+49
| |
* | tor-proto: Add last_seq_delivered to ConfluxSet.Gabriela Moldovan2025-05-061-0/+17
| |
* | tor-proto: Add client-side conflux message handlers.Gabriela Moldovan2025-05-065-0/+547
| |
* | tor-proto: Add a reason to CircuitAction::RemoveLeg.Gabriela Moldovan2025-05-062-5/+36
| | | | | | | | | | | | | | The leg removal reason will be shared with the initiator of the conflux handshake (i.e. the sender of the `CtrlMsg` initiating the handshake), if the tunnel is a multi-path tunnel with conflux handshakes in progress.
* | tor-proto: Add conflux handshake state to reactor.Gabriela Moldovan2025-05-061-0/+20
| | | | | | | | | | | | | | The reactor will need to notify the conflux handshake initiator (the sender of the `CtrlMsg` that triggered the handshake) of conflux set readiness, so it needs to keep track of the status of the circuits it was asked to link.
* | tor-proto: Add error and channel types for conflux handshake outcome.Gabriela Moldovan2025-05-062-0/+28
| | | | | | | | | | These will be used for sending the conflux handshake outcome to the reactor user.
* | tor-proto: Pass a DynTimeProvider to the circuit reactor.Gabriela Moldovan2025-05-063-2/+12
| | | | | | | | | | We will need this to implement conflux handshake timeouts, and to get the current time for RTT calculations.
* | tor-proto: Add macro to dedupe error handling.Gabriela Moldovan2025-05-061-9/+30
| |
* | tor-proto: Store the DesiredUx inside ConfluxSet.Gabriela Moldovan2025-05-061-1/+10
| |
* | tor-proto: Store the join point of the tunnel in ConfluxSet.Gabriela Moldovan2025-05-061-4/+32
| |
* | tor-proto: Add Circuit::last_hop_num for getting the last HopNum.Gabriela Moldovan2025-05-062-6/+13
| | | | | | | | This will be soon needed in the `ConfluxSet` implementation too.
* | tor-proto: Store the V1Nonce of a conflux set in ConfluxSet.Gabriela Moldovan2025-05-061-1/+10
| | | | | | | | | | This will be shared by all circuits in the set, and will be used during the conflux handshake.
* | tor-proto: Make ConfluxSet::primary_id private.Gabriela Moldovan2025-05-061-1/+1
| | | | | | | | It doesn't actually need to be `pub(super)`.
* | tor-proto: Enable tor-cell/conflux is conflux is enabled.Gabriela Moldovan2025-05-061-1/+1
| |
* | release: Bump all unstable tor/arti crates to 0.30.0Wesley Aptekar-Cassels2025-05-012-20/+19
| | | | | | | | | | | | | | | | ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.30.0 done ```
* | Merge branch 'release-2025-04-update-semver' into 'main'Nick Mathewson2025-04-301-0/+1
|\ \ | | | | | | | | | | | | maint: Update semver.md files from semver-checks See merge request tpo/core/arti!2977
| * | maint: Update semver.md files from semver-checksWesley Aptekar-Cassels2025-04-301-0/+1
| | |
* | | chore: Run fixup-features.Wesley Aptekar-Cassels2025-04-301-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | cargo run -p fixup-features -- --exclude examples/ --exclude maint/ Cargo.toml The following features in arti-ureq were manually added to full or marked non-additive: * rustls * native-tls * tokio * async-std
* | Update rand requirement to 0.9.1Nick Mathewson2025-04-291-1/+1
| | | | | | | | | | (This is going to be a _requirement_, since rand 0.9.1 has a behavioral change from 0.9.0)
* | Run cargo update.Wesley Aptekar-Cassels2025-04-291-1/+1
| | | | | | | | | | I updated everything except rand, because the new version of rand interacts with #1903, thus requiring more care.
* | tor-proto: use RelayCellFormat rather than u8 in tests.Nick Mathewson2025-04-291-14/+14
| | | | | | | | (The u8 code was written before RelayCellFormat::V1 was introduced.)
* | Rename feature cgo => counter-galois-onion.Nick Mathewson2025-04-292-5/+5
| |
* | CGO: Fix authenticated-sendme tag handling.Nick Mathewson2025-04-291-5/+20
| | | | | | | | | | | | See discussion at torspec#328: it's important that our SENDME authentication tag always be taken based on the _encrypted_ cell.
* | CGO: Note another possible performance improvement.Nick Mathewson2025-04-291-0/+3
| |
* | proto: Implement and test CGO cryptography.Nick Mathewson2025-04-294-13/+763
| | | | | | | | | | | | | | | | This provides all the operations from proposal 359, along with the necessary integration and unit tests to make sure that they are behaving properly. Closes #1943
* | proto: Implement UIV+, the wide-block RPRP used for CGO.Nick Mathewson2025-04-292-1/+456
| |
* | proto: Implement CGO functions ET and PRFNick Mathewson2025-04-294-4/+815
| | | | | | | | | | | | | | These are a tweakable block cipher, and a pseudorandom byte stream. This commit includes test vectors, which were generated from the Python reference implementation and confirmed with a less optimized Rust implementation.
* | New empty CGO module.Nick Mathewson2025-04-292-1/+26
| |
* | proto: Unified integration tests for relay crypto.Nick Mathewson2025-04-291-3/+210
| |