summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | 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-078-51/+55
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Use add_warning to maintain warning exception in examples. See merge request tpo/core/arti!2132
| * | | | add_warning: fix a python mistake.Nick Mathewson2024-05-071-1/+1
| | | | |
| * | | | Adjust examples lints using add_warningNick Mathewson2024-05-077-21/+21
| | | | |
| * | | | add_warning: Add an "Example lints" listNick Mathewson2024-05-071-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the same as the TEST_LINTS exception list, plus the nightly exception from our main lints list. It matches what we have in crates/examples/*.rs.
| * | | | add_warning: Use regexes and maps to find lists of lintsNick Mathewson2024-05-071-30/+26
| | | | | | | | | | | | | | | | | | | | This keeps our begin/end lines consistent, and lets us add new lists.
* | | | | Merge branch 'bug1395_remaining' into 'main'Nick Mathewson2024-05-079-55/+82
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-075-21/+23
| | | | | |
| * | | | | Update check_doc_features for equix cfg(fuzzing) change.Nick Mathewson2024-05-071-1/+1
| | | | | |
| * | | | | 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.
* | | | | Merge branch 'release-arising' into 'main'Ian Jackson2024-05-074-30/+223
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Matters arising during the release process Closes #1390 See merge request tpo/core/arti!2118
| * | | | | maint/cargo-publish: Bespoke message from missing jqIan Jackson2024-05-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2118#note_3027375
| * | | | | maint/cargo-publish: Use dirnameIan Jackson2024-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2118#note_3025017
| * | | | | Release.md: Provide commands for bench lockfilesIan Jackson2024-05-071-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2118#note_3025016
| * | | | | Release.md: clarify wording re hashx and equixNick Mathewson2024-05-071-1/+1
| | | | | |
| * | | | | maint/cargo-publish: Suppress a warningIan Jackson2024-05-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Not sure why this is happening in CI but not on my laptop.
| * | | | | Abolish maint/crate_versionsIan Jackson2024-05-071-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This script could fail for various reasons, because it didn't use the Cargo.toml workspace information.
| * | | | | Release.md: Say to use list_crates_publishIan Jackson2024-05-071-2/+2
| | | | | |
| * | | | | Release.md: say to use maint/cargo-publishIan Jackson2024-05-071-8/+6
| | | | | |
| * | | | | Introduce maint/cargo-publish scriptIan Jackson2024-05-071-0/+176
| | | | | |
| * | | | | maint/list_crates_publish: Soup up considerablyIan Jackson2024-05-071-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | Add argument parser, and many options.
| * | | | | Release.md: Document the need to update the extra Cargo.lockIan Jackson2024-05-071-0/+5
|/ / / / /
* | | | | Merge branch 'fix_feature_name' into 'main'Alexander Færøy2024-05-071-1/+1
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Use the right feature name for an allow(dead_code). See merge request tpo/core/arti!2133
| * | | | Use the right feature name for an allow(dead_code).Nick Mathewson2024-05-071-1/+1
|/ / / /
* | | | Merge branch 'void' into 'main'Nick Mathewson2024-05-073-7/+12
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 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-023-7/+12
| | |_|/ | |/| |
* | | | Merge branch 'new_ci_cfg_strategy' into 'main'Nick Mathewson2024-05-0758-121/+135
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | 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-0656-112/+112
| | | | | | | | | | | | | | | | This commit is automatically generated.
| * | | CI: Use new add_warning features in place of --cfg.Nick Mathewson2024-05-061-6/+5
| | | |
| * | | add_warning: Allow suppression of marked lines, and avoid cfg().Nick Mathewson2024-05-061-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes we want to enforce different lints depending on whether we're running CI. Until now we've been using `#[cfg(not(ci_arti_FOO))]` for this, but that approach now seems to be somewhat deprecated, and to cause warnings on nightly. (See #1395.) Instead, I'm tweaking the add_warning script so that it can conditionally suppress lines depending on a command-line argument that it receives.
* | | | 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.