summaryrefslogtreecommitdiff
path: root/crates/tor-hsservice/src/keys.rs
Commit message (Collapse)AuthorAgeFilesLines
* Change deftly syntax to post 0.12.1 versionIan Jackson2024-06-171-1/+1
| | | | | | | | | | | * Change `pub` to `export` * Change the `=` in define to `:` * Change `pub_template_semver_check` to `template_export_semver_check` Right now, 0.12.1 supports both syntaxes. I have verified this branch also compiles with https://gitlab.torproject.org/Diziet/rust-derive-deftly/-/merge_requests/402 ee171ffaf56d7dcb7d75584054921153fe19b222
* derive-deftly: Change some docs referencesIan Jackson2024-04-031-1/+1
| | | | Found by "git grep adhoc" and manual inspection.
* Switch to derive-deftlyIan Jackson2024-04-031-38/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the combination of a number of separate commits, many of which were generated by seddery, and then rebased and squashed. Cargo.toml perl -i~ -pe 's{^derive-adhoc}{derive-deftly = "0.10"}' crates/*/Cargo.toml (not regenerated during rebase) update Cargo.lock `cargo fetch` without --locked (regenerated during rebase) seddery git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{^use derive_adhoc}{use derive_deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bdefine_derive_adhoc\b}{define_derive_deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bAdhoc\b}{Deftly}g if m{derive}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\#\[derive_adhoc\b}{#[derive_deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{use derive_adhoc}{use derive_deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc\b}{derive_deftly_adhoc} if m{use.*deftly}' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc!}{derive_deftly_adhoc!}' (not regenerated during rebase) Manually add `#[derive_deftly_adhoc]` where needed. seddery git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\#\[adhoc\b}{#[deftly}g' git-ls-files | grep '\.rs$' | xargs perl -i~ -pe 's{\bderive_adhoc_template}{derive_deftly_template}' (not regenerated during rebase) Manually fix up an import Manually update some builder attrs Manually fix up tor_rtmock::time_core This was missed in my seddery, due to me rebasing the branch and not redoing the seddery.
* Run maint/add_warning.Nick Mathewson2024-03-131-0/+1
|
* Fix some rustdoc warnings.Nick Mathewson2024-03-121-1/+1
| | | | | These are mostly about explicitly linking to things that were already in scope.
* tor-hsservice: prelude: Move imports from keys.rsIan Jackson2024-03-051-14/+1
|
* tor-keymgr: Rename KeyMgr::remove_with_type to KeyMgr::remove_entry.Gabriela Moldovan2024-02-191-1/+1
| | | | Part of #1271
* tor-keymgr: Make KeyMgr::remove_with_type take a KeystoreEntry.Gabriela Moldovan2024-02-191-4/+1
| | | | | | | NB: `KeyMgr::remove_with_type` will need to be renamed to `KeyMgr::remove_entry`. Part of #1271
* tor-keymgr: Make KeyMgr::list_matching return `KeystoreEntry`s.Gabriela Moldovan2024-02-191-3/+4
| | | | Part of #1271
* tor-hsservice: Rename the service keystore dir to "hss".Gabriela Moldovan2024-02-011-14/+14
| | | | | | | | | | | The onion service keys now live in the `hss/<nickname>` subdirectory within the keystore. This layout change is **not** backwards-compatible, so if you want to use your existing hidden service keys, you will need to manually move them to `<keystore_root>/hss`. Closes #1260
* tor-keymgr: Lowercase the role when building the ArtiPath.Gabriela Moldovan2024-01-311-5/+5
| | | | | | | The role is a slug, and slugs are not allowed to contain uppercase characters. Closes #1195
* tor-hsservice: Fix typos etc.gabi-2502024-01-241-2/+2
|
* tor-hsservice: key expiry: Code motion and reindentingIan Jackson2024-01-241-26/+22
| | | | | Now the remove_if_expire closure, which does the actual work, is lexically outside the macro, and the macro is trivial.
* tor-hsservice: key expiry: Introduce HsTimePeriodKeySpecifier traitIan Jackson2024-01-241-10/+49
| | | | | | This allows us to have a closure containing runtime-polymorphic code, reducing monomorphisation and moving code out of a macro into a closure.
* tor-hsservice: key expiry: Rely on limiting publisher key scanIan Jackson2024-01-241-2/+6
| | | | | | | | Our pattern is now supposed to ensure that we don't see any irrelevant keys. So if we do, that's a bug. (The code layout is getting increasingly odd. We'll sort that out along with some code motion later.)
* tor-hsservice: key expiry: Limit publisher key scanIan Jackson2024-01-241-5/+5
| | | | | | | Only examine keys for this HS. This avoids thinking about every key for every HS for every netdir change. That's quadratic in the number of HS's.
* tor-hsservice: key expiry: Break out KeystoreSweeper::expire_keysIan Jackson2024-01-241-0/+48
| | | | We're going to change where this is called.
* tor-keymgr: Fully qualify KeySpecifierPattern in KeySpecifier macro.Gabriela Moldovan2024-01-101-1/+0
| | | | | | If you derive `KeySpecifier` and forget to import `KeySpecifierPattern` you get a confusing error. It's better to let the macro import (or fully qualify) the necessary types from tor-keymgr.
* KeySpecifier etc: apply deferred rustfmt import churnIan Jackson2024-01-041-1/+1
|
* KeySpecifier d-a macro: Do not produce fn new()Ian Jackson2024-01-041-5/+6
| | | | | | Where we wanted this, use derive_more::Constructor isntead. arti#1151 item 6.
* KeySpecifier: Make KeySpecifierPattern a traitIan Jackson2024-01-041-0/+1
| | | | | | So now .arti_pattern() is a trait method. arti#1151 item 3.
* KeySpecifier d-a macro: Introduce SomeSpecifierPattern and use dynIan Jackson2024-01-041-1/+1
| | | | | | | | This is a better API. The implementation has less monomorphisation. arti#1151 item 2 and the patterns part of 4. Closes #1126.
* tor-hsservice: Drop an unused importIan Jackson2024-01-041-1/+0
| | | | | I'm not sure why the compiler doesn't complain about this already, but it becomes "more" unused later.
* KeySpecifier d-a macro: rename from KeySpecifierDefaultIan Jackson2024-01-031-7/+7
| | | | arti#1151 item 1.
* tor-hsservice: Fix broken doc link.Gabriela Moldovan2023-12-141-1/+1
|
* tor-hsservice: keys: Remove unused imports (and a blocking todo)Ian Jackson2023-12-071-2/+0
|
* tor-hsservice: tests: IptKeySpecifier: Do round trip testIan Jackson2023-12-071-8/+8
|
* tor-hsservice: IptKeySpecifier: impl KeySpecifier via macroIan Jackson2023-12-071-14/+8
|
* tor-hsservice: IptKeySpecifier: make it ownedIan Jackson2023-12-071-4/+4
| | | | | The macro is going to want to be able to do a back-conversion from an ArtiPath, so there has to be an owned version.
* tor-hsservice: IptKeySpecifier: reorder fieldsIan Jackson2023-12-071-2/+2
| | | | | Now they are in the order they appear in the ArtiPath, which is a bit clearer.
* tor-hsservice: IptKeyRole: impl FromStr and KeySpecifierComponentIan Jackson2023-12-071-1/+4
|
* tor-keymgr: Replace assert_key_specifier_rountrip macro with function (fmt)Ian Jackson2023-12-071-12/+3
| | | | Formatting churn at call sites.
* tor-keymgr: Replace assert_key_specifier_rountrip macro with functionIan Jackson2023-12-071-13/+8
| | | | The new function checks both directions. The (misspelled) macro didn't.
* tor-hsservice: Add a cross-reference to KeystoreSweeper.Gabriela Moldovan2023-12-051-0/+7
|
* tor-keymgr: Update key summary strings to be less verbose.Gabriela Moldovan2023-12-051-5/+5
|
* tor-hsservice: Test the TryFrom<&KeyPath> KeySpecifier impl.Gabriela Moldovan2023-12-051-1/+7
|
* tor-hsservice: Add some useful derives for the key specifiers.Gabriela Moldovan2023-12-051-5/+5
|
* tor-hsservice: Make the KeySpecifier fields crate-public.Gabriela Moldovan2023-12-051-7/+7
| | | | We're about to use them.
* tor-keymgr: Store an owned type instead.Gabriela Moldovan2023-12-051-15/+20
| | | | | | We need this because the key specifier types will soon be owned types too (they will soon grow a From<&KeyPath> impl). We _could_ make them store `Cow`s instead, but I think that's a premature optimization.
* tor-hsservice: IptKeySpecifier: add a TODO HSSIan Jackson2023-12-041-0/+2
|
* tor-hsservice: Use keystore to store and reuse IPT keysIan Jackson2023-12-041-1/+0
|
* tor-hsservice: Define key specifiers for IPT keysIan Jackson2023-12-041-1/+57
|
* 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
|
* tor-hsservice: Derive the service key specifier implementations.Gabriela Moldovan2023-11-201-24/+43
|
* tor-keymgr: Use the new denotator separator instead of underscore.Gabriela Moldovan2023-11-021-3/+3
| | | | | | | | Underscores are used within `ArtiPath`s as visual separators. To reduce ambiguity, we now use a different character for separating the key denotators (e.g. time periods) from the rest of the `ArtiPath`. Closes #1063
* tor-keymgr: Fix a broken docs linkIan Jackson2023-11-011-2/+2
| | | | | | | | | | | | Fixes: cargo doc --workspace $f --document-private-items 1 | //! [`KeySpecifier`] implementations for hidden service keys. | ^^^^^^^^^^^^ no item named `KeySpecifier` in scope 8 | /// A helper for defining service [`KeySpecifier`]s. | ^^^^^^^^^^^^ no item named `KeySpecifier` in scope
* tor-hsservice: Add tests for define_svc_key_specifier.Gabriela Moldovan2023-10-301-0/+62
|
* tor-hsservice: Define key specifiers using the new helper macro.Gabriela Moldovan2023-10-301-119/+29
| | | | Closes #1069
* tor-hsservice: Add convenience wrapper around define_key_specifier (fmt).Gabriela Moldovan2023-10-301-2/+2
|