aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src/ipt_mgr.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* oneshot: Use veneer in tor-hsserviceIan Jackson2023-10-111-1/+2
|
* Merge branch 'intro_rend' into 'main'Nick Mathewson2023-09-211-0/+1
|\ | | | | | | | | HSS: Route necessary material into RendRequest See merge request tpo/core/arti!1610
| * hs_ntor: allow attempting handshake with a set of subcredentials.Nick Mathewson2023-09-201-13/+0
| | | | | | | | | | | | | | Since we are using the same introduction point circuits for multiple time periods, we need the ability to provide a set of subcredentials and see which of them acually works. Fortunately, we "only" have to do digest operations here, which are much faster than public key.
| * HSS: route most necessary key material to RendRequestNick Mathewson2023-09-201-0/+14
| | | | | | | | | | | | | | | | | | 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: Handle config updates correctlyIan Jackson2023-09-201-7/+24
| |
* | tor-hsservice: Make config a watch receiverIan Jackson2023-09-201-3/+5
|/ | | | We introduce a bug here which the next commit will fix.
* tor-hsservice: ipt mgr: Apply deferred rustfmt churnIan Jackson2023-09-181-3/+1
|
* tor-hsservice: ipt mgr: Remove some allowsIan Jackson2023-09-181-4/+0
|
* tor-hsservice: ipt mgr: Instruct Establisher to start acceptingIan Jackson2023-09-181-1/+12
|
* tor-hsservice: ipt mgr: Introduce ErasedIptEstablisher aliasIan Jackson2023-09-181-4/+7
| | | | We're going to want to talk about this in the Mockable trait.
* tor-hsservice: ipt mgr: Break apart publish_setIan Jackson2023-09-181-10/+26
| | | | | | | | The call site is going to want to do something other with the selected IPTs than just publish them. (This seems better than putting the Establisher notification in a function called `publish_set`.)
* tor-hsservice: ipt mgr: Move `expires` bindingIan Jackson2023-09-181-8/+8
| | | | | | We're going to split this function, and this will be in the 2nd half. Code motion only.
* tor-hsservice: ipt mgr: Split out publish None handlingIan Jackson2023-09-181-4/+9
| | | | | We want a separate block so we can do other things besides just making an IptPublishSet.
* Merge branch 'ipt-misc' into 'main'Nick Mathewson2023-09-181-25/+25
|\ | | | | | | | | tor-hsservice: Pass correct parameters to Establisher See merge request tpo/core/arti!1597
| * tor-hsservice: ipt mgr: Drop Mockable::new_intro_pointsIan Jackson2023-09-181-5/+0
| | | | | | | | | | | | We don't need this because the manager takes an IptsManagerView which can be connected to something other than a real publisher (and is pretty good at passing on the info).
| * tor-hsservice: Pass correct parameters to EstablisherIan Jackson2023-09-181-5/+4
| |
| * tor-hsservice: Wrap k_hs_ipt_sid in an ArcIan Jackson2023-09-181-2/+8
| |
| * tor-hsservice: TODO HSS-IPT-PERSIST: make a new specific todoIan Jackson2023-09-181-6/+6
| | | | | | | | This is the persistent IPT feature.
| * tor-hsservice: ipt mgr: Code motion needed to actually make iptIan Jackson2023-09-181-10/+10
| | | | | | | | We must generate keys and so on before we can set up an Establisher.
| * tor-hsservice: Unify ids as IptLocalId replacing IntroPointIdIan Jackson2023-09-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * tor-hsservice: Use correct name for k_hs_ipt_sid variableIan Jackson2023-09-181-1/+1
| | | | | | | | | | | | | | Local variables can have contextually implied elements omitted. In this case that's `hs` and `ipt`, leaving `k_sid` as in ipt_mgr.rs. Put the full name in the doc comment.
* | Merge branch 'ipt-set-2' into 'main'Ian Jackson2023-09-181-9/+16
|\ \ | |/ |/| | | | | tor-hsservice: Implement ipt_set See merge request tpo/core/arti!1577
| * tor-hsservice: Add a block to run_onceIan Jackson2023-09-181-9/+16
| |
* | Add a note about how the K_hss_ntor is passed.Nick Mathewson2023-09-171-0/+4
| |
* | ipt_mgr: use HsSvcNtorKeypair.Nick Mathewson2023-09-171-23/+4
|/ | | | Closes #1030.
* tor-hsservice: ipt mgr: merge_join_subset_by: testIan Jackson2023-09-121-0/+27
|
* tor-hsservice: ipt mgr: Add an empty test moduleIan Jackson2023-09-121-0/+18
|
* tor-hsservice: ipt mgr: Commentary about performanceIan Jackson2023-09-121-0/+59
|
* tor-hsservice: ipt mgr: merge_join_subset_by: rustfmtIan Jackson2023-09-121-2/+2
|
* tor-hsservice: ipt mgr: merge_join_subset_by: fix clippy lintsIan Jackson2023-09-121-11/+5
|
* tor-hsservice: ipt mgr: merge_join_subset_by: drop Debug boundsIan Jackson2023-09-121-3/+3
| | | | Now it's not fallible, we don't need to construct error messages.
* tor-hsservice: ipt mgr: merge_join_subset_by: return an iteratorIan Jackson2023-09-121-12/+7
|
* tor-hsservice: ipt mgr: merge_join_subset_by: Introduce 'outIan Jackson2023-09-121-8/+8
| | | | No functional change.
* tor-hsservice: ipt mgr: merge_join_subset_by: Replace algorithmIan Jackson2023-09-121-77/+20
| | | | | Use HashMap-based algorithm, as per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1583#note_2941645
* tor-hsservice: ipt mgr: merge_join_subset_by: document working setIan Jackson2023-09-121-1/+2
|
* tor-hsservice: ipt mgr: merge_join_subset_by: check more for dupesIan Jackson2023-09-121-0/+4
|
* tor-hsservice: ipt mgr: Break out merge_join_subset_byIan Jackson2023-09-121-19/+109
| | | | | Propted by this conversation https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940675
* tor-hsservice: ipt mgr: Handle ipt relay selection failure (fmt)Ian Jackson2023-09-111-1/+1
|
* tor-hsservice: ipt mgr: Handle ipt relay selection failureIan Jackson2023-09-111-4/+34
| | | | Without panicking.
* tor-hsservice: ipt_mgr: Document expiry NoneIan Jackson2023-09-071-0/+2
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940673
* tor-hsservice: ipt_mgr: Explain more about expiry time data flowIan Jackson2023-09-071-0/+13
| | | | | Apropos https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940676
* tor-hsservice: ipt_mgr: Add a TODO about the joinIan Jackson2023-09-071-0/+4
| | | | | Apropos https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940675
* tor-hsservice: ipt_mgr: Explicitly drop publish_setIan Jackson2023-09-071-0/+2
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1578#note_2940674
* tor-hsservice: ipt_mgr: Actually send ipts to publisherIan Jackson2023-09-071-4/+2
|
* tor-hsservice: ipt_mgr: Fix output expiry time handling (fmt)Ian Jackson2023-09-071-2/+2
|
* tor-hsservice: ipt_mgr: Fix output expiry time handlingIan Jackson2023-09-071-10/+9
| | | | | | | For the expiry times for descriptors we are intending to publish, copy out of our data structure. We don't need to actually update it to account for (possible) imminent publication; the publisher will do that.
* tor-hsservice: ipt_mgr: Import updated expiry timesIan Jackson2023-09-071-0/+38
|
* tor-hsservice: ipt_mgr: Call borrow_for_update()Ian Jackson2023-09-071-5/+11
| | | | | | And plumb the reference through to places that will need it. We don't actually do anything with the results yet.
* tor-hsservice: ipt_mgr: Call borrow_for_update() (pre fmt)Ian Jackson2023-09-071-3/+10
|
* tor-hsservice: ipt_mgr: Reorganise main loop a bitIan Jackson2023-09-071-9/+13
| | | | | We are going to need to hold the ipt_set lock while we loop around making changes to our data structures etc.