The changes in #1360 were breaking, so this release bumps the minor
version.
It might be possible to get some additional breaking changes in as well,
if we can land RustCrypto/crypto-bigint#1266.
This renames the old `SigningKey::generate` to
`try_generate_from_rng_with_components`, having the new one generate
random `Components` with a 3072-bit modulus size, which is now the
`Default` for `KeySize`.
This renames the previous `generate` methods to
`try_generate_from_rng_with_key_size` and changes them to accept a
`TryCryptoRng`, returning a `Result` with potential RNG errors.
This helps clear the way for implementing the `Generate` trait from
`crypto-common`, which defines its own `generate` method which takes
no parameters, using the system RNG and default key size.
Releases the following, which all now depend either directly or
transitively on `pkcs8` v0.11 (which had breaking changes in the final
release)
- `dsa` v0.7.0-rc.15
- `ecdsa` v0.17.0-rc.18
- `ed25519` v3.0.0-rc.5
- `ed448` v0.5.0-rc.6
- `ml-dsa` v0.1.0-rc.9
- `slh-dsa` v0.2.0-rc.5
- `xmss` v0.1.0-pre.1
Includes changes to the default `Mul` and `Add` impls so they are no
longer widening, necessitating a switch to
`concatenating_add`/`concatenating_mul`.
See RustCrypto/crypto-bigint#1177
NOTE: temporarily excludes `slh-dsa` from the workspace until `rand` is
bumped because it is the only crate that depends on it
Release notes:
https://github.com/rust-random/rand_core/releases/tag/v0.10.0
Also bumps the following:
- `chacha20` v0.10.0-rc.10
- `cipher` v0.5.0-rc.7
- `crypto-bigint` v0.7.0-rc.24
- `crypto-common` v0.2.0-rc.14
- `digest` v0.11.0-rc.10
- `elliptic-curve` v0.14.0-rc.27
- `signature` v3.0.0-rc.10
Releases new versions of everything except `dsa` and `ecdsa` (since we
previously released those) which include the `rand_core` v0.10.0-rc-6
upgrade (as well as the associated `signature` v3.0.0-rc.9 release).
The `ml-dsa` crate contains a fix for #1176.
Releases the following:
- `ed25519` v3.0.0-rc.3
- `ed448` v0.5.0-rc.3
- `lms-signature` v0.1.0-rc.1
- `ml-dsa` v0.1.0-rc.4
- `rfc6979` v0.5.0-rc.4
- `slh-dsa` v0.2.0-rc.3
Includes changes to the `BoxedMontyForm::new` API, and also bumps
`crypto-primes` to v0.7.0-rc.6 which includes the associated updates
to that crate for the API change.
The `signature` test was too tightly coupled with the precise RNG
output, in effect not just testing the DSA signature/verification logic
but also testing that the exact bit sequence was produced by the
dependent crate.
We already have tests against deterministic keys and signatures at
`tests/deterministic.rs`, so modify `tests/signature.rs` to instead
generate a random keypair using the system RNG, then generate a
signature with that keypair, and then verify that signature.
The existing hard-coded signatures have been left in place as they are
used to test PKCS decoding and encoding.
Switches every crate except `slh-dsa` away from a direct `rand`
dependency they don't need. Right now we can't publish any crate that
directly depends on `rand`.
Uses a consistent default strategy for RNGs: `SysRng`, sourced from the
`getrandom` or as `rand::rngs::SysRng` in the case of `slh-dsa` which is
actually using `rand`-specific features.
If this causes too much of a slowdown, we can re-evaluate and go (back)
to `ChaCha8Rng` where needed for testing.