aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src/rend_handshake.rs
Commit message (Collapse)AuthorAgeFilesLines
* hsservice: Accept and negotiate protocol extensions.Nick Mathewson2026-07-021-4/+17
|
* proto: Add crate-level exports for two extra stream types (fmt)Gabriela Moldovan2026-06-171-5/+5
|
* tor-hssrvice: port to web-time-compat.Nick Mathewson2026-03-261-4/+4
|
* proto: Rename CircSyncView to CircHopSyncViewGabriela Moldovan2026-02-161-1/+1
| | | | And update the docs
* fix: use wallclock timestamps in all push_timed callsNihal2025-12-171-1/+8
|
* refactor: convert Extend to inherent method, forbid push/extend, fix ↵Nihal2025-12-171-1/+11
| | | | rend_handshake time
* refactor: clean codeNihal2025-12-171-1/+1
|
* feat(retry-error): add timestamps to retry errorsNihal2025-12-171-1/+1
|
* Refactor common code that builds circtargets for HS.Nick Mathewson2025-12-041-60/+34
| | | | | | | | | This code was duplicated across hsclient and hsservice. Logically, it belongs in netdir, since that's where we have the latest required-protocol information, and the ability to look up relays by IDs. Closes #1223
* proto: Replace ClientCircSyncView in IncomingStreamRequestFilterGabriela Moldovan2025-10-301-1/+1
|
* proto: Add a circuit module shared between client and relay impls.Gabriela Moldovan2025-08-281-2/+2
| | | | | | | This is just code motion (I suggest reviewing with `--color-moved`). This also moves the implementation-agnostic parts from `tor_proto::client::circuit` to a new `tor_proto::circuit` module.
* proto: Move the `stream` module under `client` (breaking).Gabriela Moldovan2025-08-181-5/+5
| | | | | | | | | | | | The `stream` module is client-specific, for the most part, so I am moving it under `client`. Later on, we will factor out the parts that can be shared with the relay implementation. Note: this is a breaking change as the deleted `stream` module was `pub`. We could've kept the module and reexported from it the public types from `tor_proto::client::stream`, but I think it's better to have this `client` namespacing, because it makes the separation between the client and relay parts clearer.
* Switch Cargo.toml files to edition 2024.Nick Mathewson2025-08-071-3/+3
| | | | | | | | | | | | | | First, run ``` git grep -l "^edition =" | xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;' ``` Second, manually verify that all Cargo.toml files have changed, and nothing else has changed. Third, run cargo fmt again.
* hsservice: Do not send the REND1 to the virtual hop.Gabriela Moldovan2025-08-051-2/+5
| | | | | The service is supposed to send the RENDEZVOUS1 to the rendezvous point itself, not the virtual hop.
* hs: Use the new Tunnel interface for onion serviceDavid Goulet2025-08-051-26/+21
|
* hsservice: Stop using HopNum and use TargetHopDavid Goulet2025-06-261-1/+1
| | | | | | | | | | | This requires some changes to the tor-proto crate to handle the inbound TargetHop from the HS subsystem and then resolve it into a HopNum for a single circuit. It is expected that this will change again with Conflux to only use HopLocation internally in a Tunnel and then use HopNum into a Circuit. Signed-off-by: David Goulet <[email protected]>
* proto: Make send_raw_msg() use a TargetHopDavid Goulet2025-06-261-1/+1
| | | | | | | | | | | | | | | In order for this to work, a last_target_hop() function is added to ClientCirc in order to return a precise hop location as a TargetHop of the last hop. This is needed because in the HS subsystem, we need such value in order to get a location on the last physical hop before adding the virtual hop. The RDV1 cell is sent to that last target hop while the allow_stream_request() is done on the virtual target hop. Signed-off-by: David Goulet <[email protected]>
* proto: Move NegotiatedHopSettings to a higher levelNick Mathewson2025-06-101-1/+5
| | | | | | We will construct this object based on the circuit parameters _and_ on the target's supported protocol versions, so we need to do so when we have both pieces of info.
* Add methods for getting proof-of-work extension from intro request.Wesley Aptekar-Cassels2025-05-271-0/+5
|
* squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-1/+1
| | | | - `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
* circmgr: Remove the CircParameters build .expect()David Goulet2025-01-161-1/+2
| | | | | | Instead, return an error and make all call site handle it. Signed-off-by: David Goulet <[email protected]>
* circ: Specialize the circparams from netparams functionDavid Goulet2025-01-161-2/+2
| | | | | | | | | | | | | | | Congestion control parameters have specific values depending on the circuit type. Instead of using a CircuitType, which is removed in this commit, specialize the function in this case onion and exit. This allows us to get rid of CircuitType and solely use TargetCircUsage instead. At this commit, we use .expect() on the Builder. Future commit will remove this to return a Result in case of failure. Worth noting that we don't expect one. Signed-off-by: David Goulet <[email protected]>
* circmgr: Modify CircParameters for congestion controlDavid Goulet2025-01-161-1/+2
| | | | | | | | | | | | | | The congestion control parameters are created from the consensus parameters (netparams) and then put into the CircParameters object that is then passed down the tor-proto crate. Because different parameters are selected depending on the circuit type (onion vs exit vs sbws), a CircuitType enum is introduced for the sole purpose of being used to select the right parameters. Related #534 Signed-off-by: David Goulet <[email protected]>
* hss: Make the limit for streams configurable.Nick Mathewson2024-03-261-8/+10
| | | | Closes #1124.
* Add an IncomingStreamRequestFilter to check early propertiesNick Mathewson2024-03-261-5/+31
| | | | | | | Based on designs in #1124. Note that there is a TODO here about a hack I had to do to appease the borrow checker.
* Refactor the logic for constructing crypt layers.Nick Mathewson2024-03-261-5/+0
| | | | | | | | | | | The key insights here are: - That relay cell format and crypto protocols aren't orthogonal: Once we have GCO, it will require V1. - That we only need the actual functions for layer construction to be generic; we don't need to proliferate generic parameters everywhere. - That the circuit::handshake module already does most of what we want.
* Propagate RelayCellFormat selection up to where format decisions will be madeJim Newsome2024-03-201-0/+5
|
* Run rustfmtIan Jackson2024-03-051-3/+1
| | | | | This alphabetises the imports, ready for us to do some more manual tidying.
* tor-hsservice: prelude: Move most imports from rend_handshake.rsIan Jackson2024-03-051-16/+3
|
* tor-hsservice: Move rend_handshake.rs out of svcIan Jackson2024-03-051-0/+374