summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * tor-keymgr: Update key summary strings to be less verbose.Gabriela Moldovan2023-12-051-5/+5
| |
| * tor-keymgr: Update summary docs based on review.Gabriela Moldovan2023-12-051-1/+3
| |
| * tor-keymgr: Add a cross-reference to register_key_info_extractor.Gabriela Moldovan2023-12-051-0/+4
| |
| * tor-keymgr: s/register_key_validator/register_key_info_extractorGabriela Moldovan2023-12-051-1/+1
| |
| * tor-keymgr: Test the derived TryFrom<&KeyPath> key specifier impl.Gabriela Moldovan2023-12-051-9/+19
| |
| * tor-hsservice: Test the TryFrom<&KeyPath> KeySpecifier impl.Gabriela Moldovan2023-12-054-4/+12
| |
| * tor-keymgr: Add a module for test utilities.Gabriela Moldovan2023-12-053-0/+16
| |
| * tor-hsservice: Add some useful derives for the key specifiers.Gabriela Moldovan2023-12-051-5/+5
| |
| * tor-hsservice: Add a helper for removing expired keys.Gabriela Moldovan2023-12-052-3/+154
| | | | | | | | Closes #1043
| * tor-hsservice: Make the KeySpecifier fields crate-public.Gabriela Moldovan2023-12-051-7/+7
| | | | | | | | We're about to use them.
| * tor-keymgr: Add KeyMgr::remove_with_type.Gabriela Moldovan2023-12-051-0/+18
| | | | | | | | | | Sometimes we need to remove a key without knowing its concrete (Rust) type (only its `KeySpecifier` and `KeyType`).
| * tor-keymgr: Make DefaultKeySpecifier generate a key info extractor as well.Gabriela Moldovan2023-12-054-1/+119
| |
| * tor-keymgr: Use KeySpecifierComponent instead of Display.Gabriela Moldovan2023-12-051-1/+14
| |
| * tor-keymgr: Store an owned type instead.Gabriela Moldovan2023-12-056-43/+52
| | | | | | | | | | | | 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-keymgr: Add more variants to KeyPathError.Gabriela Moldovan2023-12-051-0/+13
| | | | | | | | We will need them soon.
| * tor-keymgr: Make all arguments of arti_pattern optional.Gabriela Moldovan2023-12-052-9/+13
| | | | | | | | | | We're going to need this soon (to match all hidden service keys, regardless of nickname, for example).
| * tor-keymgr: Introduce a KeySpecifierComponent trait.Gabriela Moldovan2023-12-053-2/+35
| | | | | | | | | | | | | | | | | | Now the fields of a `DefaultKeySpecifier` no longer have to implement `Display` (they need to implement `KeySpecifierComponent`). See https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1733#note_2966400 Closes #1127
| * tor-keymgr: Add a function for describing a KeyPath.Gabriela Moldovan2023-12-052-2/+24
| |
| * tor-keymgr: Add a way of registering key info extractors using inventory.Gabriela Moldovan2023-12-055-4/+37
| |
| * tor-keymgr: Add types for extracting info out of a KeyPath.Gabriela Moldovan2023-12-052-2/+28
| |
| * tor-keymgr: Change KeyDenotator error type to KeyPathError.Gabriela Moldovan2023-12-054-12/+23
|/ | | | | This is a separate class of errors that deserves its own error type. We will soon use `KeyPathError` in other contexts as well.
* Merge branch 'msrv-followup' into 'main'Nick Mathewson2023-12-0410-49/+11
|\ | | | | | | | | Followups from MSRV 1.70 upgrade See merge request tpo/core/arti!1785
| * arti: rewrite ilog10_roundup using checked_ilog10.Nick Mathewson2023-11-301-16/+4
| |
| * tor-config: use black_box in test.Nick Mathewson2023-11-301-3/+1
| |
| * guardmgr: Stop using now-needless retain_mut crate.Nick Mathewson2023-11-304-19/+4
| |
| * rtmock: Remove now-needless to_string calls.Nick Mathewson2023-11-301-4/+0
| |
| * netdoc: Remove an "unknown_lints" exception.Nick Mathewson2023-11-301-1/+0
| |
| * llcrypto: Use up-to-date name for a clippy lint.Nick Mathewson2023-11-301-2/+1
| |
| * netdoc: refactor to use a let-else.Nick Mathewson2023-11-301-4/+1
| |
* | Merge branch 'persist' into 'main'Ian Jackson2023-12-0412-144/+772
|\ \ | | | | | | | | | | | | | | | | | | HSS: Store IPTs and their keys to disk, and reload on restart Closes #967 See merge request tpo/core/arti!1782
| * | tor-hsservice: IptKeySpecifier: add a TODO HSSIan Jackson2023-12-041-0/+2
| | |
| * | tor-hsservice: ipt_set: Remove a blocking TODOIan Jackson2023-12-041-1/+0
| | | | | | | | | | | | This function became non-dead in some earlier commit.
| * | tor-hsservice tests: Add some TODOs re IPT accepting stateIan Jackson2023-12-041-0/+8
| | |
| * | tor-hsservice tests: Check that restart gives us the same IPTs (fmt)Ian Jackson2023-12-041-11/+18
| | | | | | | | | | | | Mandatory formatting degradation.
| * | tor-hsservice tests: Check that restart gives us the same IPTsIan Jackson2023-12-041-2/+24
| | | | | | | | | | | | | | | | | | Store the IptParameters in the MockEstabState, and provide a function to list what the IPTs are. Then we can check the IPTs are reloaded and restored after restart.
| * | tor-hsservice tests: Test restarting the IPT managerIan Jackson2023-12-041-0/+9
| | | | | | | | | | | | | | | This is supposed to reload the state. In the next commit we'll check at least some of the things.
| * | tor-hsservice tests: Break out shutdown_check_no_tasksIan Jackson2023-12-041-4/+7
| | | | | | | | | | | | We're going to add another call site in a moment.
| * | tor-hsservice: Use keystore to store and reuse IPT keysIan Jackson2023-12-044-9/+85
| | |
| * | tor-hsservice: ipt_mgr: Prepare for nonfatal IPT creation errorsIan Jackson2023-12-042-5/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously IPT creation could only fail due to key generation failures or other kinds of internal error, which were very unlikely and treated as fatal. But with key persistence, IPT creation will be able to fail due to eg disk full.
| * | tor-hsservice: Define key specifiers for IPT keysIan Jackson2023-12-043-1/+59
| | |
| * | tor-hsservice: ipt_set: Store publication timesIan Jackson2023-12-041-16/+101
| | |
| * | tor-hsservice: ipt_mgr: Save and load IPT relays etc. (fmt)Ian Jackson2023-12-041-6/+3
| | |
| * | tor-hsservice: ipt_mgr: Save and load IPT relays etc.Ian Jackson2023-12-042-10/+155
| | | | | | | | | | | | | | | | | | | | | | | | Store the IPT manager's data structure to the provided storage manager. Keys are not persistent yet! And we must save the publication IPT set since it can have the only record of IPT publication times.
| * | tor-hsservice: ipt_set: Have various methods take a RuntimeIan Jackson2023-12-045-16/+29
| | | | | | | | | | | | | | | | | | | | | | | | Actually, a SleepProvider. We will need this for timestamp conversion during loading and saving. channel() needs it to load. note_publication_attempt needs it for saving, as does borrow_for_update.
| * | tor-hsservice: ipt_set: Have various methods take a Runtime (pre-fmt)Ian Jackson2023-12-044-6/+19
| | | | | | | | | | | | Whitespace changes that make the next commit less noisy.
| * | tor-hsservice: ipt_set: Provide IptManagerView::borrow_for_read()Ian Jackson2023-12-041-2/+10
| | | | | | | | | | | | | | | | | | | | | We're about to make borrow_for_update() take a runtime parameter, which will be a bit annoying. borrow_for_read() doesn't need one. Call sites will come on a moment.
| * | tor-hsservice tests: Use a real storage manager for IPT manager testsIan Jackson2023-12-041-2/+8
| | |
| * | tor-hsservice tests: Break out create_storage_handles_from_state_mgrIan Jackson2023-12-041-2/+9
| | | | | | | | | | | | We're going to want to reuse this.
| * | tor-hsservice tests: Break out MockedIptManager state structIan Jackson2023-12-041-18/+45
| | | | | | | | | | | | | | | | | | | | | And therefore, break out the IPT manager startup, into a MockedIptManager::start. We can have it borrow the TempDir, legitimising the _untracked call.
| * | tor-hsservice tests: Use a real keystore for IPT manager testsIan Jackson2023-12-041-54/+4
| | | | | | | | | | | | | | | | | | IPT persistence tests will need to actually save things. We'll fix up the `.into_untracked()` wrinkle shortly.