aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-proto
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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
| |
* | proto: Make relay-side cell crypto traits return tags.Nick Mathewson2025-04-292-15/+20
| | | | | | | | | | | | (We'll need these tags both to implement authenticated SENDMES at the relay side, and also to make sure that cgo is generating them correctly.)
* | proto: Make crypt layers take a ChanCmd argumentNick Mathewson2025-04-295-49/+66
| | | | | | | | | | | | CGO will need this argument so that it can authenticate the command as part of its crypto operations. (Trying to meddle with RELAY vs RELAY_EARLY will no longer work!)
* | proto: refactor RelayCrypt trait into separate traitsNick Mathewson2025-04-295-21/+80
| | | | | | | | | | | | It seems very likely that, as with client crypto, we'll want relay crypto to separable into "forward" and "reverse" objects, so that the two can be used more or less independently.
* | proto: Tweak semantics of RelayCrypt::originate.Nick Mathewson2025-04-293-3/+5
| | | | | | | | | | | | | | | | | | | | This makes the behavior of "originate" match the behavior of OutboundClientLayer::originate_for, which creates the message _and_ encrypts it. This will be necessary for CGO, where "originate" and "encrypt" are not easily separated operations. (Nothing uses this trait yet, since relay circuits aren't yet a thing, so it's a good time to get it right.)
* | proto: move tor1 testvector test into tor1 module.Nick Mathewson2025-04-292-54/+79
| |
* | proto: Clean up imports in tor1.rs.Nick Mathewson2025-04-292-6/+8
| |
* | proto: Move tor1 relay crypto to a separate file.Nick Mathewson2025-04-292-312/+312
| | | | | | | | | | | | | | Since we're about to have a second kind of relay cell crypto, it makes sense to move this module. This change is pure code movement.
* | Include "bug" in all bug error messagesNick Mathewson2025-04-283-3/+3
|/
* tor-proto: prevent cc extension during ntor-v3 extendSteven Engler2025-04-241-2/+27
| | | | | | | | This was missed in commits ccb65961 and eeda643f. While `params.ccontrol.is_enabled()` should always be false because of those earlier commits which ensure we don't enable congestion control, we were missing the defense-in-depth conditions here that would alert us if we accidentally did enable congestion control.
* tor-circmgr: put vegas cc in `CircParameters` behind `if false`Steven Engler2025-04-231-0/+13
| | | | | This means that even with the "flowctl-cc" feature enabled, we shouldn't try to negotiate congestion control.