summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | hss: start filling in a "launch" function for OnionService.Nick Mathewson2023-09-212-39/+57
| |
* | tor-hsservice: Update Publisher::new docs.Gabriela Moldovan2023-09-211-1/+3
| |
* | tor-hsservice: Add must_use for Publisher::launch.Gabriela Moldovan2023-09-211-0/+1
| |
* | tor-hsservice: Remove outdated TODO.Gabriela Moldovan2023-09-211-1/+0
| |
* | tor-hsservice: Give the descriptor publisher a separate launch function.Gabriela Moldovan2023-09-213-28/+54
| | | | | | | | | | | | | | | | | | | | | | This also makes `Publisher::new` synchronous. If `Reactor::new` fails, `Publisher::launch` propagates the error to its caller (to achieve this, I had to give `PublisherError` a new `ReactorLaunch` variant and make `ReactorError` and `UploadError` crate-public). Closes #1042
* | Merge branch 'intro_rend' into 'main'Nick Mathewson2023-09-218-91/+255
|\ \ | | | | | | | | | | | | HSS: Route necessary material into RendRequest See merge request tpo/core/arti!1610
| * | hs_ntor: replace "32" with a const.Nick Mathewson2023-09-211-1/+1
| | |
| * | hs_ntor: rename get_{introduce,rendezvous}1_key_material.Nick Mathewson2023-09-211-6/+6
| | |
| * | hs_ntor: improve several comments.Nick Mathewson2023-09-211-3/+10
| | |
| * | hs_ntor: rename enc_key to dec_key in service code.Nick Mathewson2023-09-211-5/+5
| | |
| * | hs_ntor: allow attempting handshake with a set of subcredentials.Nick Mathewson2023-09-203-43/+53
| | | | | | | | | | | | | | | | | | | | | 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.
| * | hs_ntor: Take our k_hss_ntor keypair explicitly.Nick Mathewson2023-09-203-20/+24
| | |
| * | HSS: Enable RendRequests to be answered.Nick Mathewson2023-09-205-25/+79
| | | | | | | | | | | | | | | This requires yet more plumbing—this time, of HsCircPool and NetDirProvider.
| * | hss: Minor hack to avoid parameterizing RendRequestContext on RuntimeNick Mathewson2023-09-201-2/+29
| | | | | | | | | | | | | | | We need to pass around an Arc<HsCircPool<R>>, but doing so directly would force us to make RendRequestContext parameterized on R.
| * | HSS: route most necessary key material to RendRequestNick Mathewson2023-09-203-15/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge branch 'slow-test' into 'main'Nick Mathewson2023-09-201-1/+2
|\ \ \ | | | | | | | | | | | | | | | | tor-hsclient: state expiry test: Use MockSleepProvider advance See merge request tpo/core/arti!1609
| * | | tor-hsclient: state expiry test: Use MockSleepProvider advanceIan Jackson2023-09-201-1/+2
| | | | | | | | | | | | | | | | | | | | See https://gitlab.torproject.org/tpo/core/arti/-/issues/1040
* | | | tor-hsservice: Fix compile error, make Publisher use Arc<OnionServiceConfig>.Gabriela Moldovan2023-09-204-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a compile error introduced as a result of merging a couple of conflicting MRs (!1611 and !1604). This also makes the channel the publisher uses for watching for config changes receive `Arc<OnionServiceConfig>` (rather than `OnionServiceConfig`).
* | | | Merge branch 'mgr-watch' into 'main'gabi-2502023-09-201-6/+25
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-hsservice: Make config a watch receiver Closes #1041 See merge request tpo/core/arti!1611
| * | | | 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.
* | | | | Merge branch 'onionservice_part1' into 'main'Nick Mathewson2023-09-202-79/+92
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Start to implement OnionService::new (part 1) See merge request tpo/core/arti!1604
| * | | | hss: Use tor-persist to make a StorageHandle.Nick Mathewson2023-09-202-2/+13
| | | | | | | | | | | | | | | | | | | | We'll use this to implement intro point persistence.
| * | | | tor-hsservice/Cargo.toml: wrap.Nick Mathewson2023-09-201-1/+15
| | | | |
| * | | | OnionService: start to flesh out the new() function.Nick Mathewson2023-09-201-5/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has a lot of open questions, and won't work yet, but it starts to show us the current level of interface mismatch between our pieces.
| * | | | hss remove duplicated data from OnionService structure.Nick Mathewson2023-09-191-74/+1
| | | | | | | | | | | | | | | | | | | | This data is all duplicated in other places, or will be.
* | | | | Merge branch 'upgrades' into 'main'Nick Mathewson2023-09-203-5/+5
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | Upgrade to fixed-capacity-vec 1.0 See merge request tpo/core/arti!1606
| * | | | Update bench lockfiles for new fixed-capacity-vecNick Mathewson2023-09-202-4/+4
| | | | |
| * | | | Upgrade to fixed-capacity-vec 1.0Nick Mathewson2023-09-201-1/+1
| | |/ / | |/| |
* | | | Merge branch 'flatten' into 'main'Ian Jackson2023-09-204-0/+692
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor_config: Provide Flatten See merge request tpo/core/arti!1605
| * | | | tor-config: flatten: Remove a redundant allowIan Jackson2023-09-201-1/+0
| | | | | | | | | | | | | | | | | | | | At some earlier point of development this struct was pub.
| * | | | tor-config: flatten: Sort out names for field extractorIan Jackson2023-09-201-12/+12
| | | | |
| * | | | tor-config: flatten: always use field list from serdeIan Jackson2023-09-202-48/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a better trickery! Now we don't need to derive the list of field names at all. The test case becomes much simpler too, and no longer needs to compare field lists since we have only the serde field list.
| * | | | tor-config: flatten: Performance of flattenable_extract_fieldsIan Jackson2023-09-201-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | Add a performance note, and the manually-verified test case to support it.
| * | | | tor-config: flatten: Break out flattenable_extract_fieldsIan Jackson2023-09-202-25/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This involves returning the field list in the `FlattenableTesterSuccess`. This leaves the names a little off; we'll update those at the end. Export this - it's going to replace the hidden pub test function.
| * | | | tor-config: flatten: Introduce FieldList type aliasIan Jackson2023-09-201-6/+9
| | | | | | | | | | | | | | | | | | | | We're going to use this some more, even.
| * | | | tor_config: flatten: Abolish FlattenErrorIan Jackson2023-09-201-38/+9
| | | | |
| * | | | tor_config: flatten tests: Remove the obsolete todoIan Jackson2023-09-201-1/+0
| | | | |
| * | | | tor_config: Add a note about FlattenErrorIan Jackson2023-09-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1605#note_2945202
| * | | | tor_config: Flatten: Explain why the inner ref Flatten for serIan Jackson2023-09-201-0/+5
| | | | |
| * | | | tor_config: Flatten: Add missing tst annotationIan Jackson2023-09-201-0/+1
| | | | |
| * | | | tor_config: Provide FlattenIan Jackson2023-09-204-0/+690
| |/ / / | | | | | | | | | | | | | | | | This is an attempt to deal with the fact that `#[serde(flatten)]` is weirdly broken and doesn't work with `serde_ignored`.
* | | | tor-hsservice: Make the publisher compile again.Gabriela Moldovan2023-09-202-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The compile error happened because there was a conflict between arti!1603 and arti!1599: * the patch from !1603 uses `OnionServiceConfig::encrypt_descriptor` * !1599 removes `encrypt_descriptor` altogether
* | | | Merge branch 'publish-on-state-change' into 'main'gabi-2502023-09-202-236/+383
|\ \ \ \ | |/ / / |/| | | | | | | | | | | tor-hsservice: Descriptor publisher improvements See merge request tpo/core/arti!1603
| * | | tor-hsservice: Add TODO regarding DescriptorConfigView.Gabriela Moldovan2023-09-191-0/+4
| | | | | | | | | | | | | | | | See https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1603#note_2944902
| * | | tor-hsservice: Do not discard the runtime.spawn() Result (fmt).Gabriela Moldovan2023-09-191-18/+21
| | | |
| * | | tor-hsservice: Do not discard the runtime.spawn() Result.Gabriela Moldovan2023-09-191-16/+28
| | | |
| * | | tor-hsservice: Add an explicit Idle state for the publisher reactor.Gabriela Moldovan2023-09-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code was correct too: after uploading the descriptor, the `PublishStatus` is not updated, because the reactor is still in a state where it has enough information to publish descriptors. Note that simply "being" in the `UploadScheduled` state isn't enough to trigger another upload, because `publish_status_rx.next()` (from the `select_biased!` of the main-loop), blocks until something triggers another state transition (`AwaitingIpts` -> `UploadScheduled`, or even `UploadScheduled` -> `UploadScheduled`), so while a third state is not strictly necessary, it does help with readability.
| * | | tor-hsservice: Use Instant instead of Duration for rescheduling uploads.Gabriela Moldovan2023-09-191-6/+31
| | | | | | | | | | | | | | | | This also documents how updates are rescheduled.
| * | | tor-hsservice: Remove stray doc comment.Gabriela Moldovan2023-09-191-1/+0
| | | |