summaryrefslogtreecommitdiff
path: root/crates/tor-key-forge
Commit message (Collapse)AuthorAgeFilesLines
* Bump all the unstable tor- and arti- crates to 0.32.0.Gabriela Moldovan2025-07-071-8/+8
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.32.0 done ```
* Temporarily suppress mismatched_lifetime_syntaxes.Gabriela Moldovan2025-07-071-0/+1
| | | | See #2060.
* Upgrade to derive-deftly 1.1.0.Gabriela Moldovan2025-07-071-1/+1
| | | | | | I had to also bump `toml` to `0.8.23`, because `toml 0.8.22` is incompatible with `serde_spanned 0.6.9` (which is automatically pulled in because of the d-d upgrade).
* release: Bump all tor-/arti- crates to 0.31.0.Alexander Hansen Færøy2025-06-051-8/+8
| | | | | | | | This was done using: for crate in $(./maint/list_crates | grep -P '^tor-|^arti-'); do cargo set-version -p $crate 0.31.0 done
* All crates: bump rust-version to 1.83.Nick Mathewson2025-05-131-1/+1
|
* release: Bump all unstable tor/arti crates to 0.30.0Wesley Aptekar-Cassels2025-05-011-8/+8
| | | | | | | | ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.30.0 done ```
* Update rand requirement to 0.9.1Nick Mathewson2025-04-291-1/+1
| | | | | (This is going to be a _requirement_, since rand 0.9.1 has a behavioral change from 0.9.0)
* Run cargo update.Wesley Aptekar-Cassels2025-04-291-1/+1
| | | | | I updated everything except rand, because the new version of rand interacts with #1903, thus requiring more care.
* fix `clippy::doc_overindented_list_items`Steven Engler2025-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | Example: ```text warning: doc list item overindented --> crates/arti-rpc-client-core/src/conn/connimpl.rs:322:9 | 322 | /// indicates that no more messages will be received for this request. | ^^^ help: try using ` ` (2 spaces) | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items note: the lint level is defined here --> crates/arti-rpc-client-core/src/lib.rs:8:9 | 8 | #![warn(clippy::all)] | ^^^^^^^^^^^ = note: `#[warn(clippy::doc_overindented_list_items)]` implied by `#[warn(clippy::all)]` ```
* Remove semver.md files post-release.Gabriela Moldovan2025-04-011-1/+0
|
* Bump all the unstable tor- and arti- crates to 0.29.0.Gabriela Moldovan2025-03-311-8/+8
| | | | | | | | | | Done using: ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.29.0 done ```
* Use an EntropicRng trait to enforce key generation rules.Nick Mathewson2025-03-244-8/+15
| | | | | | | | | | | We want to require that whenever we generate a key that's persistent (stored in KeyMgr), it's going to be made from a stronger-than-usual Rng. This trait helps us enforce that. We also add a FakeEntropicRng struct to use for testing. Note that this turned up a case that we'd missed, which required an internal change in tor-hsservice.
* squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-2/+2
| | | | - `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
* Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-1/+1
| | | | | | (Per discussion at #1774, we think the changes are acceptable.) This commit won't compile on its own; subsequent commits will fix it.
* key-forge: Use CryptoRng from rand.Nick Mathewson2025-03-181-2/+1
| | | | | Previously we used the version signature::rand_core for some reason, but that's now incompatible.
* Wrap ed25519-dalek types.Nick Mathewson2025-03-181-10/+10
| | | | | | | | | | | With this change, we'll no longer need to expose the types from dalek-cryptography as part of our API, and we'll have more freedom to switch ed25519 implementations, or to upgrade to a newer `rand` ahead of their schedule. Unlike with x25519-dalek, I had to tweak the API a bit: There's no way to get a &PublicKey out of a Keypair now, and implementing the old ed25519-dalek traits seemed unnecessary.
* Bump minor versions in tor-*, arti-*.Nick Mathewson2025-03-031-7/+7
|
* Upgrade to derive_more 2Nick Mathewson2025-02-261-1/+1
| | | | | This took a little refactoring, since derive_more::Foo no longer re-exports std::ops::Foo.
* Enable derive-deftly beta featuresIan Jackson2025-02-121-1/+1
| | | | | | | | Right now this will give us `${Xmeta as ... default ...}`, which may improve things in the future. The Cargo.toml syntax is precisely that from https://docs.rs/derive-deftly/1.0.0/derive_deftly/doc_changelog/index.html#t:beta
* Update to derive-deftly 1.0Ian Jackson2025-02-121-1/+1
| | | | | | | | | This is released now. Prepared with: cargo upgrade -i -p derive-deftly There is some new duplication now I think mostly because pwd-grp uses old derive-deftly.
* Remove semver.md files post releaseIan Jackson2025-02-071-5/+0
|
* Merge branch 'versions' into 'main'Ian Jackson2025-02-061-7/+7
|\ | | | | | | | | Version bumps for 1.4.0 See merge request tpo/core/arti!2773
| * Version bumps to 0.27.0Ian Jackson2025-02-061-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See Release.md. maint/list_crates | grep -P '^tor-|^arti-' | xargs -n1 nailing-cargo -Eu set-version --bump minor -p This completes the version bumps. The report of changed crates, before I started the release work, is: $ maint/changed_crates -v "arti-v$LAST_VERSION" oneshot-fused-workaround: No change. slotmap-careful: No change. test-temp-dir: No change. fslock-guard: No change. hashx: No change. equix: No change. tor-basic-utils: No change. caret: No change. fs-mistrust safelog: No change. retry-error: No change. tor-error tor-general-addr: No change. tor-geoip: No change. tor-rtcompat tor-rtmock tor-async-utils tor-config tor-config-path tor-rpc-connect tor-log-ratelim: No change. tor-rpcbase tor-memquota: No change. tor-units tor-llcrypto: No change. tor-protover: No change. tor-bytes tor-checkable: No change. tor-cert tor-key-forge tor-hscrypto: No change. tor-socksproto: No change. tor-linkspec: No change. tor-cell: No change. tor-proto tor-netdoc: No change. tor-consdiff: No change. tor-netdir tor-relay-selection: No change. tor-persist tor-chanmgr tor-ptmgr: No change. tor-guardmgr: No change. tor-circmgr tor-dirclient: No change. tor-dirmgr: No change. tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy: No change. tor-relay-crypto arti-client arti-relay arti-rpcserver arti arti-rpc-client-core $
* | Fix Cargo.toml features formattingIan Jackson2025-02-061-1/+4
| | | | | | | | Manual line breaks which fixup-features doesn't know how to add.
* | Add some missing "full" featuresIan Jackson2025-02-061-1/+1
|/ | | | | | | Precisely the results of maint/fixup-features. Some crates end up with slightly odd formatting, which I will fix in a moment.
* Upgrade to downcast-rs 2Ian Jackson2025-02-051-1/+1
| | | | No code changes needed.
* tor-key-forge: Add missing semver.md entries.Gabriela Moldovan2025-01-131-0/+3
|
* tor-key-forge: Remove no longer needed ItemType impl for KeyUnknownCert.Gabriela Moldovan2025-01-131-9/+0
| | | | | No longer used, because we're now using `ParsedEd25519Cert` instead of `KeyUnknownCert` to represent parsed but not yet validated certs.
* tor-key-forge: Implement ItemType for ParsedEd25519Cert.Gabriela Moldovan2025-01-131-0/+9
| | | | | This will enable us to retrieve it from the keystore as an `ErasedKey` (side note, we should rename `ErasedKey` to `ErasedItem`).
* tor-key-forge: Add wrappers for various cert types.Gabriela Moldovan2025-01-132-3/+115
|
* tor-key-forge: Fill out the InvalidCertError type.Gabriela Moldovan2025-01-132-1/+20
| | | | We'll soon use this.
* tor-key-forge: Fix typo in doc comment.Gabriela Moldovan2025-01-131-1/+1
|
* tor-keymgr: Add cert parse error variant.Gabriela Moldovan2025-01-132-0/+5
| | | | | | | This will soon be used, when we modify the `ArtiNativeKeystore` cert lookup code to actually parse certificates before returning them. Part of #1768
* tor-key-forge: Add ItemType impl for KeyUnknownCert.Gabriela Moldovan2025-01-131-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `KeyUnknownCert` will soon be used as the `ToEncodableCert::ParsedCert` type for Tor ed25519 certs. For example, the `ToEncodableCert` impl for `RelaySigningKeyCert` will look like this: ```rust pub struct RelaySigningKeyCert(EncodedEd25519Cert); impl ToEncodableCert<RelaySigningKeypair> for RelaySigningKeyCert { type ParsedCert = KeyUnknownCert; type EncodableCert = EncodedEd25519Cert; type SigningKey = RelayIdentityKeypair; fn validate( cert: Self::ParsedCert, subject: &RelaySigningKeypair, signed_with: &Self::SigningKey, ) -> Result<Self, InvalidCertError> { // TODO: validate `KeyUnknownCert` // and convert it to an EncodedEd25519Cert // (we don't yet an easy way to perform this conversion) } fn to_encodable_cert(self) -> Self::EncodableCert { self.0 } } ```
* tor-key-forge: Split out ItemType as a separate trait.Gabriela Moldovan2025-01-134-18/+41
| | | | | | | | This is necessary because `ParsedCert`s will not be `EncodableItem`s. This is because we cannot (and don't want to) write certificates that have not yet been validated to the keystore. They do need to be retrievable from the keystore though, so we also change `ErasedKey` to be `Box<dyn ItemType>` instead.
* tor-key-forge: Distinguish between parsed certs and encodable certs.Gabriela Moldovan2025-01-131-4/+7
| | | | | | | | | | | | | | | We need two different types to represent * certs that have been parsed, but not yet validated (`KeyUnknownCert`) * newly generated encodable certs (`EncodedEd25519Cert`) Currently, we don't use `KeyUnknownCert` anywhere, and instead use `EncodedEd25519Cert` to represent "parsed" but not-yet-validated certs. This approach is wrong and relies on a broken (no-op) `EncodedEd25519Cert::from_bytes` implementation. A future commit will address this problem by replacing `EncodedEd25519Cert::from_bytes` with `Ed25519Cert::decode` to actually parse the cert upon retrieving it from the keystore.
* tor-keymgr: Replace from_encodable_cert with validation function.Gabriela Moldovan2025-01-131-7/+2
| | | | | | | | In practice, we won't be able to obtain an `ToEncodableCert` type from an `EncodableItem` cert without validating it first, so we need to collapse `validate` into `from_encodable_cert`. Part of #1768
* tor-key-forge: Export some additional tor-cert types.Gabriela Moldovan2025-01-131-3/+3
| | | | This will soon be used.
* Remove semver.md files after 1.3.2 releaseNick Mathewson2025-01-071-1/+0
|
* Bump versions of internal arti crates for Arti 1.3.2Nick Mathewson2025-01-071-5/+5
| | | | | | | | | | | | | The affected crates follow our regular versioning. They all get bumped to 0.26.0. Done with ``` for crate in $(./maint/list_crates |grep '^arti-\|tor-' ); do cargo set-version --bump minor -p $crate; done ```
* clippy: deny `mod_module_files`Steven Engler2025-01-061-0/+1
| | | | | | Denies 'mod.rs' files for consistency. https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
* Run "fixup-features" in preparation for release.Nick Mathewson2025-01-061-1/+1
|
* tor-hscrypto: Move encodable key trait impls from tor-key-forge.Gabriela Moldovan2024-12-112-114/+0
| | | | | | | | | This enables us to get rid of the tor-key-forge -> tor-hscrypto dependency, partially addressing the TODO from `tor_key_forge::traits`. This commit is mostly code motion. Best reviewed with `--color-moved`. See also #1778
* tor-key-forge: Abolish the HasKind impl of Error.Gabriela Moldovan2024-12-102-14/+1
| | | | | | | We can't possibly know the `ErrorKind` of such an error, unless we know where the unsupported key came from. Since we can't know this, we should let a higher level crate (like `tor-keymgr`) decide the `ErrorKind` instead.
* tor-key-forge: Enable use of tor-cert experimental APIs.Gabriela Moldovan2024-12-041-1/+1
|
* tor-key-forge: Export certificate-related types.Gabriela Moldovan2024-12-041-0/+5
|
* tor-key-forge: Implement KeystoreItem::item_type.Gabriela Moldovan2024-12-042-2/+9
|
* tor-key-forge: s/EncodableKey/EncodableItem in documentation.Gabriela Moldovan2024-12-041-11/+11
|
* tor-keymgr: Add KeyMgr::get_key_and_cert() (fmt).Gabriela Moldovan2024-12-041-1/+4
|
* tor-keymgr: Add KeyMgr::get_key_and_cert().Gabriela Moldovan2024-12-041-1/+1
|