summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src/req.rs
Commit message (Collapse)AuthorAgeFilesLines
* tor-keymgr: Include ArtiPath in InvalidArtiPath (fmt).Gabriela Moldovan2024-02-191-2/+6
|
* tor-keymgr: Include ArtiPath in InvalidArtiPath.Gabriela Moldovan2024-02-191-1/+1
| | | | Part of #1115
* tor-keymgr: Include the ArtiPath in InvalidKeyPathComponentValue.Gabriela Moldovan2024-02-191-0/+1
| | | | | | The offending `ArtiPath` should be included in the error. Part of #1115
* tor-keymgr: Rename {to,from}_component to {to,from}_slug.Gabriela Moldovan2024-02-191-3/+3
| | | | | | | | | Originally, these functions converted to and from `ArtiPathComponent`. In !1931, we replaced `ArtiPathComponent` with `Slug` without renaming the conversion functions. Since we're converting to and from `Slug` now, I think it makes sense to rename them too. Part of #1115
* tor-keymgr: Replace KeyMgr::get_with_type with KeyMgr::get_entry.Gabriela Moldovan2024-02-191-2/+1
| | | | Part of #1271
* tor-keymgr: Make KeyMgr::list_matching return `KeystoreEntry`s.Gabriela Moldovan2024-02-191-1/+3
| | | | Part of #1271
* tor-hsservice: Read the keypair when deriving the subcredentials.Gabriela Moldovan2024-02-011-5/+8
| | | | | We're about to stop storing `KP_hs_id` in the keystore, so in preparation, let's update the callsites that attempt to retrieve it.
* tor-keymgr: Remove the Slug tests (fmt).Gabriela Moldovan2024-01-311-4/+2
|
* tor-keymgr: Abolish ArtiPathComponent.Gabriela Moldovan2024-01-311-3/+4
| | | | | | `ArtiPathComponent`s are really just `Slugs`. Part of #1193, #1092
* tor-hsservice: Move compute_subcredentials to RendRequestContext.Gabriela Moldovan2024-01-221-4/+95
| | | | Part of #1242
* tor-hsservice: Do not store the subcredentials in RendRequestContext.Gabriela Moldovan2024-01-221-9/+9
| | | | | | | | | | | | | | | Previously, the subcredentials were computed in `IptEstablisher::launch` and stored in `RendRequestContext`. This caused long-running services to report errors like: ``` WARN tor_hsservice::helpers: Problem while accepting rendezvous request: error: Could not process INTRODUCE request: Introduction handshake was invalid: Circuit-extension handshake authentication failed ``` for clients using newer subcredentials than the ones the service had at the time the IPT was established. Fixes #1242
* hsservice: Document circ lifetime in OpenSession.Nick Mathewson2024-01-171-1/+2
| | | | | Closes #1224, by making it more clear that we aren't keeping a circuit alive indefinitely.
* hsservice: Downgrade TODO HSS comments about adding accessors.Nick Mathewson2024-01-121-2/+2
| | | | We can add these accessors as needed.
* hsservice: Remove unused proof-of-work enumNick Mathewson2024-01-121-14/+0
| | | | When we implement this, we'll use APIs from the equix crate.
* Merge remote-tracking branch 'public/hs_begin'Nick Mathewson2023-11-161-0/+10
|\
| * hss: document behavior needed for indistinguishabilityNick Mathewson2023-10-231-2/+12
| |
* | hsserive::req: Yes, leave these functions as async and fallible.Nick Mathewson2023-10-241-8/+5
| | | | | | | | | | | | | | | | | | | | | | Enough of them have turned out to need to be async so far that I don't think it's a great idea to commit to making any of them not-async forever. Additionally, we've written the code that uses these, and having them be async didn't seem to cause any major trouble. By the same "we may want to make these more complicated underneath" argument, we should IMO leave them as fallible.
* | hsserive::req: Lower/remove allowed warningsNick Mathewson2023-10-241-2/+1
| |
* | hss: Remove an unused type.Nick Mathewson2023-10-241-7/+0
|/
* proto: Make StreamTarget::close() misuse less likely.Nick Mathewson2023-10-171-1/+1
| | | | | | | | | It turns out that we can make `IncomingStream::reject()` consume self, thus making it impossible to hit the double-close error from outside the `tor-proto` crate. Also, we rename `StreamTarget::close()` to `close_pending()` to better reflect its limited applicability.
* tor-hsservice: Narrow some dead code allowsIan Jackson2023-10-161-0/+2
|
* hss: use Arc to avoid copying on k_hss_ntor.Nick Mathewson2023-10-121-1/+1
| | | | (We try to avoid making tons and tons of copies of a secret key.)
* Remove the (fairly bogus) HsNtorServiceInput type.Nick Mathewson2023-10-121-7/+16
| | | | This will let avoid some copying inside our HSS code.
* hss: Remove OnionServiceDataStram type.Nick Mathewson2023-09-271-17/+3
| | | | | | | I think that the reason we added this was in case we needed different behavior from DataStream; but on reflection it does seem that we don't. Having a single type here will make things a bit simpler.
* hss: Implement methodss for StreamRequestNick Mathewson2023-09-271-7/+24
|
* tor-proto: Make allow_stream_requests() not return a ResultNick Mathewson2023-09-271-11/+5
| | | | | | | The function never yields anything but an `Ok`, so we can simplify its type. (Not a stable feature, so no semver entry needed)
* HSS: Enable RendRequests to be answered.Nick Mathewson2023-09-201-17/+55
| | | | | This requires yet more plumbing—this time, of HsCircPool and NetDirProvider.
* HSS: route most necessary key material to RendRequestNick Mathewson2023-09-201-8/+24
| | | | | | | | | When we go to answer a RendRequest, we need to have a few objects present. This commit makes sure that they're available at the right places. We also note a significant problem with the need for a Subcredential here.
* tor-hsservice: Apply deferred rustfmt churnIan Jackson2023-09-181-5/+1
|
* tor-hsservice: Unify ids as IptLocalId replacing IntroPointIdIan Jackson2023-09-181-4/+5
| | | | | | | | | | | | | | | | | | | | IntroPointId was RelayIds but that's wrong, because there can be different IPTs at the same relay - but also because an established IPT might change its RelayIds. Use IptLocalId instead, which I think is the type we decided to use for this, and which is, conveniently, Copy. And change the variable names to match, everywhere. Specifically: in places where an intro point is implied (ipt_mgr.rs, ipt_establish.rs) use the name `lid` everywhere, like in ipt_mgr.rs. Elsewhere, use `ipt_lid`. (We could use a longer name, but in that case it should be changed in ipt_mgr.rs too.) No actual functional change in this commit.
* HSS: Refactor RendRequest so we can return a stream of it.Nick Mathewson2023-08-221-29/+44
| | | | | | | We need a type that holds a rend_handshake::IntroRequest object internally, but where we don't materialize that object from the Introduce2 message inside the MsgHandler, since that's more crypto than we want to put in that task.
* tor-hsservice errors: Distinguish operational errors by contextIan Jackson2023-08-171-3/+5
| | | | | | | | | | At the very least, I need FatalError to be distinct: IptEstablisher::new ought not to fail unless everything is terrible. Add a the Spawn variant to FatalError (that we'll need soon) and the Bug variant (which it seems likely we might need). This also gets rid of the crate-level Result alias.
* tor-hsservice errors: Use Bug for methods that oughtn't to failIan Jackson2023-08-171-3/+7
| | | | | | If the service encouters operational errors, surfacing them here is not helpful. So these methods ought to work, if they weren't called erroneously.
* tor-hsservice errors: Use `crate::Result` rather than importsIan Jackson2023-08-171-8/+6
| | | | | | | | | | We want to change the error return types of many methods, so we need a way to name `std::result::Result`. We could use `StdResult`, but, actually, properly distinguishing the kinds of errors that can occur in various contexts means we don't actually want a single Error type for the whole crate, so `crate::Result` is going to go away.
* hsservice: Adapt API sketches from onion-service-notes.mdNick Mathewson2023-07-311-0/+41
|
* hsservice: Adapt data structures from onion-service-notes.mdNick Mathewson2023-07-311-0/+100
Also, removed some older structures that don't make sense in the current design. Closes #970