summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| | * tor-keymgr: Make SshKeyData an opaque type.Gabriela Moldovan2024-05-073-87/+75
| | | | | | | | | | | | | | | | | | This helps prevent external users from creating `SshKeyData` out of unsupported types of `ssh_key::public::KeyData` and `ssh_key::private::KeypairData`.
| | * tor-keymgr: Do not make SshKeyData infallibly convertible from ↵Gabriela Moldovan2024-05-072-11/+49
| | | | | | | | | | | | KeyData/KeypairData.
| | * tor-keymgr: Seal the EncodableKey trait.Gabriela Moldovan2024-05-072-1/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As explained in the docs, this trait should not be implementable outside of the `tor-keymgr` crate. The `SshKeyData::into_erased` and `UnparsedOpensshKey::parse_ssh_format_erased` impls assume the types implementing `EncodableKey` form a statically known closed set. If we later decide to make the supported key types an open set, we should make this trait implementable outside of `tor-keymgr` too. External types wanting to create custom "key types" for use in the keymgr should use the non-sealed `ToEncodableKey` trait, which specifies the `EncodableKey` type to use. This trait is mainly used to create `SshKeyData` IMO, we should make `SshKeyData` opaque, since it's not meant to be constructed through other means (`SshKeyData` is currently a public enum, so its variants and the `ssh_key` types they wrap are public). A future commit will make it opaque.
| | * tor-keymgr: Update ephemeral keystore docs.Gabriela Moldovan2024-05-071-2/+2
| | |
| | * tor-keymgr: Dedupe all the convert functions.Gabriela Moldovan2024-05-073-143/+17
| | |
| | * tor-keymgr: Make an ArtiNativeKeystore-specific function private.Gabriela Moldovan2024-05-071-20/+16
| | | | | | | | | | | | | | | | | | | | | The `ssh_algorithm()` function was only meant for use in the ArtiNativeKeystore, for extracting the `KeyType` given the `SshAlgorithm` of a key read from disk, so it really shouldn't be crate-public.
| | * tor-keymgr: Move arti-specific ssh code to arti module.Gabriela Moldovan2024-05-078-70/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the types and impls from `key_type/ssh.rs` (such as `UnparsedOpenSshKey`) have nothing to do with `KeyType`, and are only used by the `ArtiNativeKeystore`, so I'm moving them to the `arti` keystore module. The shared ssh-related stuff now lives in the top-level `ssh.rs`.
| | * tor-keymgr: Test that the ephemeral store returns the correct type.Gabriela Moldovan2024-05-071-2/+6
| | |
| | * tor-keymgr: Fix now-failing test.Gabriela Moldovan2024-05-071-16/+0
| | | | | | | | | | | | | | | | | | Inserting a key that has the wrong key type no longer fails, because we now store the `KeyData` as-is, without attempting to parse it as a specific kind of SSH key.
| | * tor-keymgr: Simplify ephemeral keystore impl.Gabriela Moldovan2024-05-071-31/+6
| | | | | | | | | | | | Closes #1362 #1367
| | * tor-keymgr: Make SshKeyData convertible to ErasedKey.Gabriela Moldovan2024-05-071-3/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds an `SshKeyData::into_erased` function that returns the `SshKeyData` as a type-erased concrete key type (e.g. a type-erased `ed25519::Keypair`). This commit duplicates all of the `convert_*` functions from `key_type/ssh.rs`. A future commit will rewrite the code from `key_type/ssh.rs` to use `SshKeyData::into_erased`, and to remove the duplicate functions. Previously, `EncodableKey` returned an encoded `SshKeyData`, which doesn't implement `EncodableKey`. This was rather inconvenient for `Keystore` implementers. For instance, for the in-memory keystore we ended up working around this limitation by serializing and deserializing `EncodableKey`s to and from `String`. For the full context, see https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2076#note_3016460 Needed for #1362 #1367
| | * tor-keymgr: Add an error type for unsupported keys.Gabriela Moldovan2024-05-071-0/+6
| | |
| | * tor-keymgr: Move parse_ssh_format_erased to UnparsedOpenSshKey.Gabriela Moldovan2024-05-073-39/+37
| | | | | | | | | | | | | | | I think it makes more sense for parse_ssh_format_erased to be a function of the key than of `KeyType`.
| | * tor-keymgr: Move parse_openssh! macro to the top of the file.Gabriela Moldovan2024-05-071-58/+58
| | | | | | | | | | | | | | | | | | We're about to need it in the `UnparsedOpenSshKey` impl. This commit is just code motion and has no functional changes.
| | * tor-keymgr: Avoid using UnparsedOpenSshKey.Gabriela Moldovan2024-05-071-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `UnparsedOpenSshKey` was originally only meant to be used for the `ArtiNativeKeystore`. I am about to make it private to the arti module, so I'm updating the ephemeral keystore tests to not use it. Part of #1362
| * | Merge branch 'example_warnings' into 'main'Alexander Færøy2024-05-077-21/+21
| |\ \ | | | | | | | | | | | | | | | | Use add_warning to maintain warning exception in examples. See merge request tpo/core/arti!2132
| | * | Adjust examples lints using add_warningNick Mathewson2024-05-077-21/+21
| | | |
| * | | Merge branch 'bug1395_remaining' into 'main'Nick Mathewson2024-05-078-54/+81
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix remaining instances of unexpected_cfgs lint Closes #1395 See merge request tpo/core/arti!2134
| | * | | Rename bucket-array-api feature to bucket-arrayNick Mathewson2024-05-074-20/+22
| | | | |
| | * | | Fix indentation from last commit.Nick Mathewson2024-05-071-33/+33
| | | | |
| | * | | tor-cell: Allow unuexpected_cfgs in restricted macro.Nick Mathewson2024-05-071-0/+7
| | | | | | | | | | | | | | | | | | | | (We need this to permit our usage of our $omit_from hack.)
| | * | | equix: Add a rustdoc warning exception.Nick Mathewson2024-05-071-0/+4
| | | | |
| | * | | equix: use a feature to expose bucket array API.Nick Mathewson2024-05-074-16/+28
| | | | | | | | | | | | | | | | | | | | By removing 'cfg(fuzzing)', this resolves another case of #1395.
| | * | | Add exception for cfg(fuzzing) in tor-netdocNick Mathewson2024-05-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | The use of cfg(fuzzing) here is reasonable and localized, but we need to permit it to avoid a warning from #1395.
| | * | | tor-consdiff: Avoid cfg(fuzzing).Nick Mathewson2024-05-072-4/+5
| | |/ / | | | | | | | | | | | | | | | | This now generates an error (per #1395), and everything we used it for is also available as a feature.
| * / / Use the right feature name for an allow(dead_code).Nick Mathewson2024-05-071-1/+1
| |/ /
| * | Merge branch 'void' into 'main'Nick Mathewson2024-05-072-7/+11
| |\ \ | | | | | | | | | | | | | | | | tor-rpcbase: Use Void to eliminate a panic, as statically unreachable See merge request tpo/core/arti!2124
| | * | tor-rpcbase: Use Void to eliminate a panic, as statically unreachableIan Jackson2024-05-022-7/+11
| | | |
| * | | Merge branch 'new_ci_cfg_strategy' into 'main'Nick Mathewson2024-05-0755-110/+110
| |\ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | add_warning/CI: New strategy to avoid "unexpected-cfgs" warning Closes #1395 See merge request tpo/core/arti!2129
| | * | Re-run maint/add_warning.Nick Mathewson2024-05-0655-110/+110
| | | | | | | | | | | | | | | | This commit is automatically generated.
| * | | Merge branch 'keymgr-test-utils' into 'main'gabi-2502024-05-074-50/+105
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-keymgr: Move test constants to test_utils. Closes #1363 See merge request tpo/core/arti!2125
| | * | | tor-keymgr: Make test module private again.Gabriela Moldovan2024-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't need to be public anymore now that the test keys are exported from `test_utils`. Addresses https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2076#note_3016577
| | * | | tor-keymgr: Move TestSpecifier to test_utils.Gabriela Moldovan2024-05-073-26/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used by `ArtiNativeKeystore` and the `EphemeralKeystore`. Moving it to test_utils means `EphemeralKeystore` no longer needs to import test helpers from the arti module.
| | * | | tor-keymgr: Move test constants to test_utils.Gabriela Moldovan2024-05-074-23/+55
| | | | | | | | | | | | | | | | | | | | | | | | | Closes #1363 and addresses a handful of TODOs about `include_str!`ing the same key multiple times from various test modules.
| * | | | Merge branch 'hyper' into 'main'gabi-2502024-05-071-1/+18
| |\ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | Declare arti-hyper obsolete and unmaintained See merge request tpo/core/arti!2127
| | * | | Declare arti-hyper obsolete and unmaintainedIan Jackson2024-05-021-1/+18
| | | |/ | | |/|
| * | | Add requisite RPC method name prefixesNick Mathewson2024-05-061-2/+2
| | | |
| * | | Circuit reactor: use refutable let to unnest some codeJim Newsome2024-05-061-34/+35
| | | |
| * | | Circuit reactor: rename 'hop to 'hop_outboundJim Newsome2024-05-061-3/+3
| | | | | | | | | | | | | | | | | | | | It was a bit misleading since it doesn't cover all processing for the hop.
| * | | Circuit reactor run_once: remove a level of nestingJim Newsome2024-05-061-27/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of an `if` block by changing the guarded loop to check its conditions at the beginning of the loop instead of the end. This is a slight behavior change, since previously channel readiness wasn't checked before the first iteration of the loop.
| * | | circuit reactor run_once: remove a level of nestingJim Newsome2024-05-061-90/+87
| | | | | | | | | | | | | | | | | | | | | | | | This should be a pure refactor. We remove a large if block and modify the first loop inside it to check whether the channel is ready before each attempt to send a message instead of after.
| * | | TorClient: Slightly cleaner (?) interface for registering RPC methods.Nick Mathewson2024-05-063-5/+24
| | | |
| * | | Add a note about declaring get and watch functions.Nick Mathewson2024-05-061-0/+6
| | | |
| * | | Add a note about why the RPC functions aren't declared as methods.Nick Mathewson2024-05-061-0/+5
| | | |
| * | | RPC: Send "null" for blockage rather than omitting it.Nick Mathewson2024-05-061-2/+1
| | | |
| * | | Lightly simplify the syntax for installing multiple InvokerEntsNick Mathewson2024-05-062-2/+42
| | | |
| * | | RPC: Implement methods to get and watch client bootstrap status.Nick Mathewson2024-05-065-3/+121
| | | |
| * | | Add a const instance of rpc::Nil.Nick Mathewson2024-05-061-0/+2
| | | |
| * | | rpc: Remove a limitation on DynMethod macro.Nick Mathewson2024-05-061-6/+5
| | |/ | |/| | | | | | | It no longer requires the user to have `typetag` in scope.
| * | tor-rpcbase: Require downcast_rs 1.2.1Nick Mathewson2024-05-051-1/+1
| | | | | | | | | | | | This resolves a clippy warning about redundant bounds.