Commit Graph

131 Commits

Author SHA1 Message Date
Ian Jackson 3acc2af4f3 Merge branch 'clippy-allow' into 'main'
clippy: Allow some of our existing code patterns

See merge request tpo/core/arti!1396
2023-07-11 09:37:42 +00:00
Gabriela Moldovan bd4955f9ed keymgr: Add semver.md. 2023-07-10 15:38:58 +01:00
Gabriela Moldovan 9cde64c2c8 keymgr: Use Box<dyn EncodableKey> instead of Box<dyn Any>.
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1337#note_2917701

This will make it harder to accidentally return the wrong value from
`Keystore::get` (the returned value is now at least guaranteed to
implement `EncodableKey`).

Closes #937
2023-07-10 14:41:30 +01:00
Ian Jackson 473447a82e Run maint/add_warning to actually apply new lint allows 2023-07-10 13:49:51 +01:00
Nick Mathewson 4caf86349c Remove explicit allows for missing_panics_docs.
These are no longer needed.
2023-07-06 14:36:13 -04:00
Nick Mathewson 03f9f9987a Run add_warning to remove `missing_panics_doc` deny.
Closes #950.
2023-07-06 14:32:23 -04:00
Gabriela Moldovan 258dd195e0 keymgr: Explain why the TODO regarding EncodableKey can't be addressed. 2023-07-05 22:21:47 +01:00
Gabriela Moldovan 3afe810a3b keymgr: Fix broken doc link. 2023-06-30 14:41:33 +01:00
Nick Mathewson de13a7319b Bump patchlevel versions on crates with smaller changes
Done with the commands below.

The following crates have had various changes, and should get a
patchlevel bump. Since they are pre-1.0, we do not need to
distinguish new APIs from other changes.

```
cargo set-version --bump patch -p arti-client
cargo set-version --bump patch -p safelog
cargo set-version --bump patch -p tor-bytes
cargo set-version --bump patch -p tor-cert
cargo set-version --bump patch -p tor-circmgr
cargo set-version --bump patch -p tor-config
cargo set-version --bump patch -p tor-consdiff
cargo set-version --bump patch -p tor-dirclient
cargo set-version --bump patch -p tor-dirmgr
cargo set-version --bump patch -p tor-error
cargo set-version --bump patch -p tor-hsservice
cargo set-version --bump patch -p tor-linkspec
cargo set-version --bump patch -p tor-llcrypto
cargo set-version --bump patch -p tor-netdir
cargo set-version --bump patch -p tor-netdoc
cargo set-version --bump patch -p tor-proto
cargo set-version --bump patch -p tor-rpcbase
cargo set-version --bump patch -p tor-socksproto
```

This crate has new features, but no new non-experimental Rust APIs.
So even though it is post-1.0, it gets a patchlevel bump.

```
cargo set-version --bump patch -p arti
```
2023-06-30 08:42:21 -04:00
Nick Mathewson 65e81bf0ca Bump minor versions on crates with breaking changes
Done with:
```
cargo set-version --bump minor -p tor-hsclient
cargo set-version --bump minor -p arti-rpcserver
cargo set-version --bump minor -p tor-hscrypto
cargo set-version --bump minor -p tor-cell
```
2023-06-30 08:38:16 -04:00
gabi-250 8c1e96a22c Merge branch 'arti-path-bug' into 'main'
keymgr: Allow periods in ArtiPath and ArtiPathComponent.

See merge request tpo/core/arti!1358
2023-06-30 11:30:45 +00:00
Gabriela Moldovan 35e063702f keymgr: Update ArtiPath and ArtiPathComponent docs.
The docs were lying, we actually support UTF-8 paths (though we might
later decide to restrict the charset further).
2023-06-30 11:49:05 +01:00
Gabriela Moldovan 474f273b6c keymgr: Allow periods in ArtiPath and ArtiPathComponent.
The `ArtiPath` of a client auth key contains the `HsId` of the onion
Since the `HsId` contains a `.onion` component, let's allow `.` for now.
In the future, we may want to update the code (and keystore structure)
to strip away the `.onion` part before building the `ArtiPath`.
2023-06-30 11:48:27 +01:00
Ian Jackson 5d99725c65 Merge branch 'keymgr-docs' into 'main'
keymgr: Downgrade "TODO hs" to "TODO HSS"

See merge request tpo/core/arti!1360
2023-06-30 10:48:25 +00:00
Ian Jackson f177a5bde4 Merge branch 'fixup-features' into 'main'
Run fixup-features on current `main`

See merge request tpo/core/arti!1352
2023-06-30 10:38:53 +00:00
Gabriela Moldovan 90183368a2 keymgr: Downgrade "TODO hs" to "TODO HSS"
This TODO doesn't need to block the release.
2023-06-30 11:16:28 +01:00
Gabriela Moldovan 36606a66dd keymgr: Rename KeyStore to Keystore globally.
We've been capitalizing the "s" in "KeyStore" inconsistently. This
`s/KeyStore/Keystore/g` across the codebase.
2023-06-29 22:46:15 +01:00
Nick Mathewson a88fa71f25 Resolve XXXs from fixup-features.
Some of these seem spurious: it looks like fixup-features resolved
an issue and then complained about it too.  I'll investigate further.
2023-06-29 17:14:00 -04:00
Nick Mathewson f8ee830a94 Run "cargo sort". 2023-06-29 17:10:27 -04:00
Nick Mathewson 23c67d92e6 Run "fixup-features". 2023-06-29 17:09:52 -04:00
Ian Jackson 3c85863aa1 Merge branch 'exp' into 'main'
tor-error: Make KeystoreFsPermissions experimental for now

See merge request tpo/core/arti!1350
2023-06-29 19:55:06 +00:00
Ian Jackson 9ef65775c9 Merge branch 'validate-client-spec' into 'main'
keymgr: Validate ArtiPaths, replace HsClientSpecifier with generic ArtiPathComponent

See merge request tpo/core/arti!1262
2023-06-29 19:49:30 +00:00
Ian Jackson e299c2b4f7 Merge branch 'keymgr' into 'main'
tor-keymgr: Adjust stability guarantees for release

Closes #934

See merge request tpo/core/arti!1346
2023-06-29 19:27:14 +00:00
Ian Jackson effded7728 tor-keymgr: When keymgr enabled, enable tor-error's experimental too 2023-06-29 19:51:04 +01:00
Gabriela Moldovan c9f4ef010f keymgr: Remove unstable ErrorKind, use internal! for ArtiPath errors. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan f81d16ff9b keymgr: Validate the individual ArtiPahtComponents of ArtiPath.
This also implicitly forbids leading and trailing slashes in an
`ArtiPath`.
2023-06-29 19:28:22 +01:00
Gabriela Moldovan 0ebb002de8 keymgr: Rephrase ArtiPath docs.
This updates the docs with Diziet's suggested doc improvements.
2023-06-29 19:28:22 +01:00
Gabriela Moldovan b5e190d05d keymgr: Remove ArtiPath normalization, introduce additional restrictions. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan d59c3bdea9 keymgr: Document how ArtiPath validation is actually supposed to work. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan e8ef82b78d keymgr: Move validation requirements to the ArtiPath docs. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 66e6ab3f9e keymgr: Make ArtiPath platform-independent by always using '/' as a separator. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan adfde95703 keymgr: Add tests for ArtiPath validation. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan f56ed918b0 keymgr: Validate ArtiPath and ArtiPathComponent. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 2825dfc2bc keymgr: Derive Into for ArtiPath and ArtiPathComponent. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 0972fc5b2d keymgr: Define an error type for bad `ArtiPathComponents`. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 095faf9c5c keymgr: Derive Display for ArtiPath and ArtiPathComponent. 2023-06-29 19:28:22 +01:00
Gabriela Moldovan 89238f25a6 keymgr: Define `ArtiPathComponent`.
An `ArtiPathComponent` is a substring of an `ArtiPath`. An
`ArtiPathComponent` will be validated according to the same rules as
`ArtiPath`.

In the future we can replace `HsClientSpecifier` with
`ArtiPathComponent` (they both serve the same purpose except
`ArtiPathComponent` is more generic).
2023-06-29 19:28:22 +01:00
Ian Jackson 954e20bb50 tor-keymgr: Add missing footnote 2023-06-29 19:26:15 +01:00
Ian Jackson f5532eafe7 tor-keymgr: Replace whole-crate-is-unstable warning
arti-client is going to use this so it can't be whole-crate-unstable,
but it can be rapidly-changing.
2023-06-29 17:47:54 +01:00
Ian Jackson 6addbd056b tor-keymgr features: Document that "keymgr" is experimental 2023-06-29 17:44:51 +01:00
Ian Jackson eb12a6e665 tor-keymgr features: Make "keymgr" disabled by default 2023-06-29 17:43:25 +01:00
Gabriela Moldovan 429e5d2512 keymgr: Fix dummy keymgr doc links.
`Error` is private to `dummy.rs` so let's not mention it in the docs of
the public items.
2023-06-29 17:08:14 +01:00
Gabriela Moldovan 7bdc28014e keymgr: Add missing dummy implementation for KeyType::arti_extension.
This fixes a rustdoc warning when building with:

```
cargo doc --locked --offline -p arti --no-default-features --features=full,onion-service-client
```
2023-06-29 17:08:14 +01:00
Gabriela Moldovan 4941a88494 keymgr: Fix wrong_key_type test.
The string representation of `SshKeyAlgorithm` on `main` changed between
the time the tests were introduced and the time they were merged.
2023-06-29 15:21:27 +01:00
gabi-250 9407fe1ab5 Merge branch 'keymgr-tests' into 'main'
keymgr: Add tests for ArtiNativeKeyStore

See merge request tpo/core/arti!1337
2023-06-29 13:02:07 +00:00
gabi-250 b059e02093 Merge branch 'keymgr-x25519-keys' into 'main'
keymgr: Add support for x25519 keys.

Closes #900

See merge request tpo/core/arti!1321
2023-06-29 11:46:03 +00:00
Gabriela Moldovan 294bb728cf keymgr: Add a TODO about implementing and testing has_key_bundle. 2023-06-29 12:10:35 +01:00
Gabriela Moldovan 68c91223f1 keymgr: Add some basic insert and remove tests. 2023-06-29 12:10:35 +01:00
Gabriela Moldovan 4d5f414017 keymgr: Add assert_found! test helper. 2023-06-29 11:54:54 +01:00
Gabriela Moldovan 91573c6cbc keymgr: Add some key retrieval tests for ArtiNativeKeyStore. 2023-06-29 11:54:54 +01:00