569 Commits

Author SHA1 Message Date
Tony Arcieri 344087d63f ecdsa v0.17.0-rc.20 (#1383) 2026-06-17 08:14:46 -06:00
Tony Arcieri a08448edee ecdsa: remove signature verification from recovery (#1381)
Closes #1380, which makes an algebraic argument that the additional
verification step is redundant/tautilogical because it can never fail.

This removes the `VerifyingKey::recover_from_prehash_noverify` method
and gives `VerifyingKey::recover_from_prehash` its previous behavior.
2026-06-16 18:00:19 -06:00
Tony Arcieri 116295f346 ecdsa: move low-S normalization check into verify_prehashed (#1379)
The behavior is otherwise inconsistent between this `hazmat` function
and `VerifyingKey::verify_prehashed`.
2026-06-16 10:11:30 -06:00
Tony Arcieri dbc983378f ecdsa v0.17.0-rc.19 (#1376) 2026-06-10 12:25:05 -06:00
Tony Arcieri a8c7206efe rfc6979 v0.6.0-pre.0 (#1373)
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.
2026-06-06 13:00:38 -06:00
Arthur Gautier 43d9831ccf rfc6979: allow the use of non-block_api-backed hashes (#1360)
Never mind, I'll take care of it
2026-06-06 09:58:40 -06:00
dependabot[bot] 63a79f3822 build(deps): bump elliptic-curve from 0.14.0-rc.32 to 0.14.0-rc.33 (#1368) 2026-06-04 09:06:09 -06:00
Tony Arcieri a39b5af547 CI: add workspace-level doc check (#1348)
Ensures the docs for all crates build without warnings
2026-05-09 17:02:21 -06:00
Tony Arcieri ebe040ee89 rfc6979 v0.5.0 (#1337) 2026-05-06 12:55:52 -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 452633d33a ecdsa: bump elliptic-curve to v0.14.0-rc.32 (#1317)
This version requires `pkcs8` v0.11
2026-04-28 09:35:52 -06:00
Onyeka Obi 0efe0f8936 ecdsa: use absolute 128-bit floor for bits2field (#1310)
Per maintainer suggestion on #1275, replace the curve-specific
`FieldBytesSize / 2` minimum with an absolute 16-byte / 128-bit
floor. The old rule rejected legitimate pairings like SHA-256 with
P-521 (permitted by e.g. XML Signature); the new rule still catches
egregious digest misuse without those false positives.

Closes #1275
2026-04-27 08:50:50 -06:00
Tony Arcieri f467f70447 ecdsa v0.17.0-rc.17 (#1304) 2026-04-15 13:41:21 -06:00
Tony Arcieri a39b93d604 ecdsa: bump spki to v0.8 (#1303)
Release PR: RustCrypto/formats#2277
2026-04-15 13:23:50 -06:00
Tony Arcieri 6752ba4cbe ecdsa: use mul_by_generator_and_mul_add_vartime for verification (#1302)
This high-level method can plug into various strategies for efficiently
implementing `aG + bP`, including using basepoint tables, wNAF, or
linear combinations, depending on what crate features are enabled and
what curve-specific optimizations have been implemented.
2026-04-15 12:49:14 -06:00
dependabot[bot] 8cb1795140 build(deps): bump elliptic-curve from 0.14.0-rc.29 to 0.14.0-rc.30 (#1292) 2026-04-09 08:47:57 -06:00
GarmashAlex f1c060a225 fix(ecdsa): correct error message for invalid vector.k in dev macro (#1220) 2026-03-27 11:18:28 -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
Artyom Pavlov b033cce1d7 ecdsa: remove unnecessary check in FromStr impl (#1255) 2026-03-20 10:39:44 -06:00
Tony Arcieri 8699f8f010 dsa+ecdsa: bump digest to v0.11 (#1237)
Release PR: RustCrypto/traits#2300
2026-03-02 08:39:12 -07:00
Tony Arcieri b560da796b Bump der to v0.8 (#1232)
Release PR: RustCrypto/formats#2234
2026-02-26 08:49:04 -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 1047e9771b ecdsa v0.17.0-rc.15 (#1198) 2026-02-01 22:33:44 -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 17411848ca ecdsa v0.17.0-rc.14 (#1171) 2026-01-24 15:41:24 -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
Tony Arcieri 015bd72e5b ecdsa v0.17.0-rc.13 (#1164) 2026-01-20 12:42:36 -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
Tony Arcieri 73474a9ba0 ecdsa v0.17.0-rc.12 (#1143) 2026-01-08 09:56:16 -07:00
Tony Arcieri 47379ade8c ecdsa: add bench_ecdsa! macro (#1142)
Adds a macro for writing `criterion` benchmarks for ECDSA signing and
verification, similar to other benchmark macros recently added to
`elliptic-curve` and `primeorder`.

The macro should be compatible with both `criterion` v0.7 and v0.8,
allowing for downstream users to ship with MSRV 1.85 support then
upgrade later without requiring breaking changes to this macro.
2026-01-07 14:02:42 -07:00
Tony Arcieri 44e6f942fd ecdsa: dev module fixups (#1141)
- Pull in `MockCurve` from `elliptic_curve::dev::mock_curve`
- Move macros to top of file
2026-01-07 13:07:50 -07:00
Tony Arcieri d669c66b4a ecdsa: use the crypto_common::Generate trait (#1140)
Updates that go along with RustCrypto/traits#2173, which switched the
`elliptic-curve` to use the `Generate` trait introduced in
RustCrypto/traits#2096
2026-01-06 11:23:15 -07:00
Tony Arcieri ab591d8a12 ecdsa: bump elliptic-curve to v0.14.0-rc.20 (#1137) 2026-01-04 21:37:15 -07:00
Tony Arcieri 9c6961e00c ecdsa v0.17.0-rc.11 (#1131) 2026-01-03 22:17:11 -07:00
Tony Arcieri efc4e27122 ecdsa: bump elliptic-curve to v0.14.0-rc.19 (#1130) 2026-01-03 22:08:29 -07:00
Tony Arcieri f38b8aacd4 ecdsa v0.17.0-rc.10 (#1126) 2025-12-29 17:56:24 -07:00
Tony Arcieri 5c313bc249 ecdsa: bump elliptic-curve to v0.14.0-rc.18 (#1125) 2025-12-29 17:29:08 -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 d56f99f13f ecdsa v0.17.0-rc.9 (#1111) 2025-11-21 18:53:12 -07:00
Tony Arcieri 47047d5c31 ecdsa: bump elliptic-curve to v0.14.0-rc.17 (#1110)
This notably includes a bump to `rand_core` v0.10.0-rc

Previously we were sourcing this from `git` via `patch.crates-io`
2025-11-21 18:41:38 -07:00
Tony Arcieri 9fe087a8e9 ecdsa: add getrandom feature (#1107)
Adds a `getrandom` feature which allows infallible generation of
`SigningKey`s using the system's cryptographically secure RNG.

Proxies through to the newly added `getrandom` feature in the
`elliptic-curve` crate: RustCrypto/traits#2085
2025-11-09 13:38:04 -07:00
Tony Arcieri 293c7d99f7 rfc6979 v0.5.0-rc.3 (#1100) 2025-11-06 07:59:00 -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
Tony Arcieri fe23a8cf66 rfc6979 v0.5.0-rc.2 (#1089) 2025-10-22 12:28:54 -06:00
Tony Arcieri 3624d471cd ecdsa v0.17.0-rc.8 (#1087) 2025-10-22 09:48:10 -06:00