summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-hsservice: time_store: FutureTimestamp: change serdeIan Jackson2023-11-281-8/+31
| | | | | | | | Use the string representation in binary formats.
* | tor-hsservice: time_store: FutureTimestamp: impl FromStrIan Jackson2023-11-281-0/+45
| | | | | | | | | | Parse the string representation too. We'll be using this for serde.
* | tor-hsservice: time_store: FutureTimestamp: change DisplayIan Jackson2023-11-281-2/+27
| |
* | tor-hsservice: time_store: tests: Add an mpack testIan Jackson2023-11-281-0/+25
| | | | | | | | We're going to serialise different in binary formats.
* | tor-hsservice: time_store: tests: use a fixed SystemTimeIan Jackson2023-11-281-5/+6
|/ | | | This will make them easier to adjust when we serialise differently.
* Merge branch 'keymgr-derive-builder' into 'main'gabi-2502023-11-283-6/+19
|\ | | | | | | | | | | | | tor-keymgr: Derive Builder for KeyMgr. Closes #1114 See merge request tpo/core/arti!1760
| * tor-keymgr: Derive Builder for KeyMgr (fmt).Gabriela Moldovan2023-11-273-4/+17
| |
| * tor-keymgr: Derive Builder for KeyMgr.Gabriela Moldovan2023-11-273-6/+6
| | | | | | | | | | | | | | `KeyMgr` is soon going to have more fields, so now is a good time to derive `Builder` for it. Closes #1114
* | Merge branch 'hss-debug-serde' into 'main'Ian Jackson2023-11-284-4/+133
|\ \ | | | | | | | | | | | | tor-hsservice: improve Debug and serde See merge request tpo/core/arti!1765
| * | tor-hsservice: Bespoke Debug impl for IptRelayIan Jackson2023-11-271-2/+27
| | | | | | | | | | | | | | | I found myself wanting to dump the IPT manager state in debug output and the default Rust output was far too verbose.
| * | tor-hsservice: derive Debug for IptParametersIan Jackson2023-11-271-0/+6
| | |
| * | tor-hsservice: IptLocalId: test serde and DisplayIan Jackson2023-11-272-0/+49
| | |
| * | tor-hsservice: IptLocalId: bespoke serde implIan Jackson2023-11-272-2/+30
| | | | | | | | | | | | | | | This avoids writing "[42,\n 43,\n ...]" into the storage json, which is (a) wasteful (b) hard to read by hand.
| * | tor-hsservice: IptLocalId: impl DisplayIan Jackson2023-11-271-0/+11
| | | | | | | | | | | | This will help us construct ArtiPaths
| * | tor-hsservice: IptLocalId: provide dummy (test) constructorIan Jackson2023-11-271-0/+10
| |/
* | Merge branch 'persist-prefix' into 'main'Ian Jackson2023-11-287-171/+285
|\ \ | | | | | | | | | | | | HSS IPT persistence - preparatory work See merge request tpo/core/arti!1755
| * | tor-hsservice: ipt_set: Fix broken doc linksIan Jackson2023-11-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | "tor-hsservice: Make note_publication_attempt a method on PublishIptSet" broke several of these. (Rebasing to insert this at the appropriate point causes conflicts, so I'm leaving it here at the tip.)
| * | tor-hsservice: import_new_expiry_times: Add another xrefIan Jackson2023-11-271-0/+5
| | |
| * | tor-hsservice: ipt_mgr: Split out start_establisherIan Jackson2023-11-271-13/+46
| | | | | | | | | | | | We're going to need to call this on startup to reestablish existing IPTs.
| * | tor-hsservice: Make import_new_expiry_times not take &mut IptManager (fmt)Ian Jackson2023-11-271-3/+1
| | |
| * | tor-hsservice: Make import_new_expiry_times not take &mut IptManagerIan Jackson2023-11-271-5/+3
| | | | | | | | | | | | | | | We are going to want to call this during startup, when we don't have an IptManager yet.
| * | tor-hsservice: Soup up plumbing for ipt_relay_rotation_timeIan Jackson2023-11-272-10/+11
| | | | | | | | | | | | | | | This will mean if we refer to it in more places, we'll still only have one place to change it.
| * | tor-hsservice: ipt_mgr: Move nascent state records into mod persistIan Jackson2023-11-272-27/+35
| | | | | | | | | | | | | | | Let's avoid cluttering the core algorithm file with this, which is going to expand.
| * | tor-hsservice: Use Instant for planned_retirementIan Jackson2023-11-271-6/+4
| | | | | | | | | | | | We're going to use time_store, which works nicely with Instants.
| * | tor-hsservice: Mockable: Don't pass an explicit keymgr any more (fmt)Ian Jackson2023-11-271-5/+1
| | |
| * | tor-hsservice: Mockable: Don't pass an explicit keymgr any moreIan Jackson2023-11-271-7/+2
| | | | | | | | | | | | There's a keymgr in imm now, so just use that.
| * | tor-hsservice: ipt_mgr: Move KeyMgr to ImmutableIan Jackson2023-11-271-7/+6
| | | | | | | | | | | | As per the TODO.
| * | tor-hsservice: Remove a done TODOIan Jackson2023-11-271-2/+0
| | | | | | | | | | | | This is now in fact plumbed through.
| * | tor-hsservice: ipt_set: Change last_descriptor_expiry_including_slop (fmt)Ian Jackson2023-11-272-5/+9
| | | | | | | | | | | | Mandatory format degradation.
| * | tor-hsservice: ipt_set: Change last_descriptor_expiry_including_slopIan Jackson2023-11-273-52/+125
| | | | | | | | | | | | Prepare for persistence.
| * | tor-hsservice: ipt_set: Make note_publication_attempt a method on PublishIptSetIan Jackson2023-11-272-7/+9
| | | | | | | | | | | | | | | We're going to move the last_descriptor_expiry_including_slop data out of IptSet.
| * | tor-hsservice: ipt_set: Make PublishIptSet a structIan Jackson2023-11-274-30/+35
| | | | | | | | | | | | | | | We're going to add another field here. No functional change, just much churn.
| * | tor-hsservice: ipt_set: Make initial state in the constructorIan Jackson2023-11-274-5/+6
| |/ | | | | | | | | | | | | | | This struct is going to be responsible for loading and storing some persistent state, so it makes sense for it to handle initialisation. This also reduces duplication.
* | Merge branch 'keymgr-errors' into 'main'gabi-2502023-11-272-5/+4
|\ \ | |/ |/| | | | | | | | | tor-keymgr: Add a top-level Error enum Closes #1113 See merge request tpo/core/arti!1751
| * tor-keymgr: Add a top-level error type.Gabriela Moldovan2023-11-212-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the `tor_keymgr::Error` type was `Box<dyn KeystoreError>`. This forced us to impl `KeystoreError` for any error returned by the keymgr (including those that were not coming from a `Keystore` impl). Now, `tor_keymgr::Error` is an non-exhaustive enum and the `Box<dyn KeystoreError>` opaque error type is only returned from `Keystore` impls The reason we're keeping the `dyn KeystoreError` error type is because it enables `Keystore` implementors to use their own error types. Without it, they would have to choose from our (closed) set of error variants, which may not be suitable for their keystore. See #901.
* | HSS publisher error: lack of netdir: clarify messagegabi-2502023-11-201-1/+1
| |
* | HSS publisher: do not crash reactor if netdir unavailableIan Jackson2023-11-201-7/+19
| | | | | | | | | | | | | | It might come back. This introduces a new bug relating to logging, but it does abolish one of the variants of ReactorError.
* | HSS errors: expose and sort out NetdirProviderShutdown error type (fmt)Ian Jackson2023-11-201-1/+1
| | | | | | | | IHNI why rustfmt wants to do this *now*
* | HSS errors: expose and sort out NetdirProviderShutdown error typeIan Jackson2023-11-204-3/+16
| | | | | | | | | | | | We're going have it in an variant in FatalError. Also make it impl HasKind and have IptError delegate to that.
* | HSS publisher errors: Declare that we want to abolish ReactorErrorIan Jackson2023-11-201-2/+23
| | | | | | | | And explain why this isn't just a question of merging it with FatalError.
* | HSS publisher: Remove a redundant debug messageIan Jackson2023-11-201-2/+0
|/ | | | The call to reactor.run() in publish.rs, launch(), calls warn_report.
* Merge branch 'send_dos_params' into 'main'Nick Mathewson2023-11-204-18/+86
|\ | | | | | | | | | | | | HSS: Send DosParams extension to introduction points. Closes #723 See merge request tpo/core/arti!1740
| * Send DosParams conditionally on HsIntro support.Nick Mathewson2023-11-202-4/+12
| | | | | | | | It's available when the HsIntro=5 subprotocol version is present.
| * Improve documentation in/around DosParams extensionNick Mathewson2023-11-201-1/+8
| | | | | | | | | | | | It does not help that C tor has a set of parameters and a set of configuration options with exactly the same names which configure the same thing in two slightly different ways.
| * hss: Take intro_dos extension from configuration and send it.Nick Mathewson2023-11-202-4/+44
| | | | | | | | Closes #723.
| * hss: pipe config watchers into ipt_establish.Nick Mathewson2023-11-202-9/+22
| | | | | | | | | | | | We want the configuration, at least, so that we can see our DoS settings. I expect we'll also want the watcher so that we can see _changes_ in the DoS settings.
* | tor-hsservice: Update MissingHsIdKey docs, remove outdated TODO HSS.Gabriela Moldovan2023-11-202-32/+2
| |
* | tor-hsservice: Rename MissingKey to MissingHsIdKeypair.Gabriela Moldovan2023-11-204-9/+11
| | | | | | | | | | | | | | | | | | We only return this error if the identity key is missing from the keystore. This change will also help us abolish the `.role()` method on `KeySpecifier`s (it was only needed for populating the string of a `MissingKey` error).
* | tor-hsservice: Remove unused macro.Gabriela Moldovan2023-11-201-83/+1
| | | | | | | | We don't need this macro now that we adhoc-derive the implementation.
* | tor-hsservice: Derive the service key specifier implementations (fmt).Gabriela Moldovan2023-11-201-54/+54
| |