83 Commits

Author SHA1 Message Date
Arthur Gautier 332fe968e4 slh-dsa,xmss: replace sha3 with shake (#1359)
Co-authored-by: Tony Arcieri <bascule@gmail.com>
2026-06-06 12:45:41 -06:00
Tony Arcieri e0d47990aa Update copyright year to 2026 (#1322) 2026-05-02 18:10:44 -06:00
Tony Arcieri 088a4fe7a4 Bump signature dependency to v3 (#1321)
Release PR: RustCrypto/traits#2400
2026-05-02 15:16:18 -06:00
Onyeka Obi 826baa3682 Implement Hash on non-secret Signature and VerifyingKey types (#1309)
Per #1229: Signature and public-key types lack `Hash`, which prevents
use in `HashMap` / `HashSet` keys and similar collections.

- ecdsa: Signature, DER Signature, SignatureWithOid
- ed25519: Signature, pkcs8::PublicKeyBytes
- ed448: Signature, pkcs8::PublicKeyBytes
- ml-dsa: Signature, VerifyingKey
- slh-dsa: Signature, VerifyingKey

Where a trivial derive works (ed25519, ed448), uses derive. Where
generic bounds or upstream gaps require it, uses a manual impl over
the canonical serialized bytes (`to_bytes` / `encode` / `as_bytes`),
which is the natural Hash domain for these types anyway.

Closes #1229
2026-05-01 16:17:15 -06:00
Tony Arcieri 58bae19939 Cut new prereleases (#1319)
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
2026-04-28 10:08:48 -06:00
Tony Arcieri 86c035a74f Bump pkcs8 dependency to v0.11 (#1316)
Release PR: RustCrypto/formats#2314
2026-04-28 08:32:20 -06:00
Tony Arcieri d8b1875a9f Bump pkcs8 to v0.11.0-rc.12 (#1312) 2026-04-27 13:07:45 -06:00
dependabot[bot] 00e6eed7b2 build(deps): bump typenum from 1.19.0 to 1.20.0 (#1306) 2026-04-27 10:27:46 -06:00
Tony Arcieri fc8907dde0 Bump sha3 dependency to v0.11 (#1283)
Release PR: RustCrypto/hashes#816
2026-04-03 08:34:07 -06:00
Tony Arcieri d73c1e2ecb Bump hmac to v0.13 (#1274)
Release PR: RustCrypto/MACs#263
2026-03-29 17:48:15 -06:00
sashass1315 e1acc72d8b fix(slh-dsa): use checked_shl for idx_tree range in tests (#1224) 2026-03-27 11:18:05 -06:00
Tony Arcieri cdc95068ae Bump pkcs8 to v0.11.0-rc.11 (#1270) 2026-03-26 13:17:39 -06:00
dependabot[bot] 81645dc4d7 build(deps): bump proptest from 1.10.0 to 1.11.0 (#1266) 2026-03-25 13:31:08 -06:00
Tony Arcieri abb0c54f39 Bump sha2 dependency to v0.11 (#1267)
Release PR: RustCrypto/hashes#806
2026-03-25 12:44:11 -06:00
dependabot[bot] d3832611ad build(deps): bump digest from 0.10.7 to 0.11 (#1263) 2026-03-25 11:55:33 -06:00
Tony Arcieri 7d75e78f40 slh-dsa: bump rand dev-dependency to v0.10 (#1214) 2026-02-08 12:28:44 -07:00
dependabot[bot] f60c4942d8 build(deps): bump proptest from 1.9.0 to 1.10.0 (#1211) 2026-02-05 07:51:35 -07:00
Tony Arcieri a8fb994c39 Bump dependency requirements in Cargo.toml files (#1206)
Updates the following dependency requirements:
- `cipher` v0.5.0-rc.8
- `crypto-bigint` v0.7.0-rc.25
- `ctr` v0.10.0-rc.3
- `digest` v0.11.0-rc.11
- `getrandom` v0.4
- `hmac` v0.13.0-rc.5
- `sha1` v0.11.0-rc.5
- `sha2` v0.11.0-rc.5
- `sha3` v0.11.0-rc.7

This also does the following:
- `ecdsa`: `EncodedPoint` => `Sec1Point` (RustCrypto/traits#2264)
- `slh-dsa`: adds back to workspace with `rand` sourced from `git`

Releases the following:
- `dsa` v0.7.0-rc.12
- `ecdsa` v0.17.0-rc.16
- `ed25519` v0.3.0-rc.4
- `ed448` v0.5.0-rc.5
- `lms-signature` v0.1.0-rc.2
- `ml-dsa` v0.1.0-rc.6
- `rfc6979` v0.5.0-rc.5
- `slh-dsa` v0.2.0-rc.4
2026-02-02 13:10:39 -07:00
Tony Arcieri a0473fb042 Bump rand_core to v0.10.0 (#1197)
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
2026-02-01 21:47:05 -07:00
Tony Arcieri 942de7faa6 Cut new releases (#1188)
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
2026-01-27 14:34:22 -07:00
Tony Arcieri c147ef027f Bump dependencies (#1182)
Updates the following dependency requirements:
- `cipher` v0.5.0-rc.6
- `digest` v0.11.0-rc.9
- `hmac` v0.13.0-rc.4
- `signature` v3.0.0-rc.9
- `pkcs8` v0.11.0-rc.10
- `sha2` v0.11.0-rc.4
- `sha3` v0.11.0-rc.6
2026-01-26 09:41:25 -07:00
Tony Arcieri e90411eb91 Bump rand to v0.10.0-rc.8 (#1177) 2026-01-26 09:02:33 -07:00
Tony Arcieri 66295315cf Bump rand_core to v0.10.0-rc-6 (#1170)
Renames `(Try)RngCore` => `(Try)Rng`
2026-01-24 15:30:36 -07:00
Arthur Gautier 3edd7d6dbf chore(deps): bump crypto-primes to 0.7.0-pre.7 (#1165)
Remove `patch.crates-io` on non-main branches.
2026-01-20 17:18:46 -07:00
Tony Arcieri c13a0d808f Upgrade dependencies (#1163)
- `digest` v0.11.0-rc.7
- `elliptic-curve` v0.14.0-rc.23
- `signature` v3.0.0-rc.8
2026-01-20 12:14:02 -07:00
Arthur Gautier 4b8dee598e chore(deps): bump rand_core to 0.10.0-rc-5 (#1161) 2026-01-20 11:29:27 -07:00
Tony Arcieri a1e2bce0f0 slh-dsa v0.2.0-rc.2 (#1135) 2026-01-04 18:58:17 -07:00
Tony Arcieri 678f46d2d1 slh-dsa: bump rand to v0.10.0-rc.6 (#1132)
Gets rid of the `git` crate dependency
2026-01-04 08:16:41 -07:00
Tony Arcieri 48b7f61e52 RNG cleanup (#1127)
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.
2025-12-29 21:07:55 -07:00
Nics 0a580ede41 slh-dsa: SHA-2: PK.Seed state caching (#1116)
This PR is meant to address issue #1035.

It introduces an optimisation mentioned in section 8.1.6. of SPHINCS+
specification: caching the intermediate state during SHA-2 computations.

On my laptop, I observe an improvement in signing/verification time in the range
of ~15-25% (using the criterion benchmark provided).
2025-12-27 19:29:18 -07:00
Tony Arcieri a8df31793c Bump signature dependency to v3.0.0-rc.6 (#1122)
Also bumps the `digest` crate dependency to v0.11.0-rc.5 and `rand_core`
to v0.10.0-rc-3
2025-12-27 16:15:23 -07:00
Tony Arcieri 7738cf0914 slh-dsa v0.2.0-rc.1 (#1106) 2025-11-06 17:56:18 -07:00
Tony Arcieri 29d50476b4 Bump pkcs8 to v0.11.0-rc.8 (#1101) 2025-11-06 13:36:33 -07:00
Tony Arcieri e68b77acbd Bump rand_core to v0.10.0-rc-2 (#1097)
This also accordingly bumps all of the underlying crates to versions
which (transitively) depend on the `rand`/`rand_core` v0.10 release
series
2025-11-05 17:44:01 -07:00
Tom French 21e60bad04 chore: apply unreachable_pub lint (#1062) 2025-10-16 12:22:45 -06:00
Tony Arcieri c4ae371c05 New .rc prereleases (#1072)
- `dsa` v0.7.0-rc.6
- `ecdsa` v0.17.0-rc.7
- `ed25519` v3.0.0-rc.1
- `ed448` v0.5.0-rc.1
- `lms-signature` v0.1.0-rc.0
- `ml-dsa` v0.1.0-rc.0
- `slh-dsa` v0.2.0-rc.0
2025-09-13 09:02:13 -06:00
Tony Arcieri c8a19d1663 slh-dsa: bump zerocopy to v0.8 (#1071)
The `AsBytes` trait is gone, and now found on the `IntoBytes` trait.

It needs a new `Immutable` marker trait which says:

> Types which are free from interior mutability.

...so it seems safe to add to the types that previously used `AsBytes`
which are simple data structs.
2025-09-13 08:40:11 -06:00
Tony Arcieri 78b0133757 Bump dependencies in Cargo.toml(s) (#1070)
Bumps the following:
- `aes` v0.9.0-rc.1
- `cipher` v0.5.0-rc.1
- `criterion` v0.7
- `ctr` v0.10.0-rc.1
- `hex-literal` v1
- `sha3` v0.11.0-rc.3
2025-09-13 08:27:52 -06:00
Tony Arcieri 7ec5b90af9 Bump signature to v3.0.0-rc.4 (#1069) 2025-09-12 20:31:46 -06:00
Tony Arcieri 536d926d35 README.md(s): https links 2025-09-03 15:39:16 -06:00
Tony Arcieri 137ec7935c Bump hybrid-array to v0.4 (#1047) 2025-09-01 20:24:14 -06:00
Tony Arcieri 89cc97982e Bump pkcs8 to v0.11.0-rc.6 (#1017) 2025-07-16 08:34:32 -06:00
Tony Arcieri 7359233da9 Bump signature to v3.0.0-rc.2 (#1016) 2025-07-16 08:21:11 -06:00
Tony Arcieri 6cc40e5c10 der error handling fixups (#1005)
Companion PR to RustCrypto/formats#1889
2025-06-21 21:36:45 -06:00
daxpedda 85c1abb4fd Implement MultipartSigner/Verifier (#982) 2025-06-05 09:24:25 -06:00
Tony Arcieri d0f9665b50 README.md(s): crates.io badge logo 2025-05-30 20:45:49 -06:00
Tony Arcieri 26b2889438 Bump digest dependency to v0.11.0-rc.0 (#973)
Also bumps:
- `elliptic-curve` v0.14.0-rc.2
- `signature` v3.0.0-rc.0
2025-05-29 10:16:43 -06:00
dishmaker 6caf9afc4a apply nightly clippy fixes: const div_ceil (2025-05-12) (#968) 2025-05-17 11:21:57 -06:00
xjd 692353d7c6 refactor: improve no_std support for slh-dsa (#956) 2025-05-04 06:52:37 -06:00
Arthur Gautier 3dff944134 chore(deps): bump const-oid from 0.10.0-rc3 to 0.10 (#942) 2025-04-23 11:58:02 -06:00