Commit graph

73 commits

Author SHA1 Message Date
Tony Arcieri
ddb8c6813a
ed25519-dalek: bump keccak dependency to v0.2 (#892)
This optional dependency is used by our vendored STROBE implementation
for batch verification.

Release PR: RustCrypto/sponges#117
2026-03-29 16:55:40 -04:00
Michael Rosenberg
61533d75cf
curve,x,ed: Prepare for pre.6 release (#879) 2026-02-04 16:25:03 +01:00
Tony Arcieri
ea475248ae
curve,ed,x: Bump rand_core to v0.10; getrandom to v0.4 (#877)
Also bumps additional RustCrypto dependencies
2026-02-03 12:34:37 -05:00
Michael Rosenberg
59305b4e26
curve,ed: Update digest and sha2 deps (#875)
Co-authored-by: Michael Rosenberg <mrosenberg@cloudflare.com>
2026-02-02 16:39:43 -07:00
Michael Rosenberg
11f5375375
curve,x,ed: Prepare for pre.5 release (#874) 2026-01-25 02:03:25 +01:00
Tony Arcieri
b7531ca318
Bump rand_core to v0.10.0-rc-6 (#873)
This also rips out `rand`: it's just acting as a facade for what we're
using that complicates these sorts of upgrades.
2026-01-25 01:29:05 +01:00
Arthur Gautier
56a6bc07b8
chore(deps): bump rand_core to 0.10.0-rc-5 (#870) 2026-01-21 12:52:56 -07:00
Michael Rosenberg
e5a7986970
curve,ed,x: Bump prerelease version to fix build (#863) 2026-01-03 16:52:34 +01:00
Tony Arcieri
9d6ec949ad
Bump rand_core to v0.10.0-rc-3 (#860)
Most of the changes in this PR are actually from the associated `rand`
crate updates which are happening in rust-random/rand#1697, notably
`OsRng` has been renamed to `SysRng` (and is now provided by the
`getrandom` crate).

We do use some `rand_core` APIs in a few places though, like the STROBE
implementation, where this migrates from `rand_core::le` to
`rand_core::utils`.
2025-12-27 09:53:24 -07:00
Ben Beasley
7751957445
ed25519-dalek: update hex-literal dev-dependency to version 1 (#854) 2025-12-06 21:14:53 -07:00
Michael Rosenberg
3d76df7c24
Fix docs build and prep prerelease (#855)
* Fix failing docs build

* Remove hiding of docsrs cfg gate in crates where it doesn't appear

* Add docsrs build regression check to CI
2025-12-04 18:06:40 -05:00
Michael Rosenberg
81c642d74f
Prep pre.2 prereleases (#849) 2025-11-22 22:09:59 +01:00
Tony Arcieri
23d0d2cec0
Bump rand_core from v0.9 to v0.10.0-rc-2 (#842)
Prior to a final stable release of the @RustCrypto dependencies used by
the dalek crates, we are going to target `rand_core` v0.10.

This updates the `rand` and `rand_core` dependencies as well as the
aforementioned @RustCrypto dependencies to be compatible with
`rand_core` v0.10, which incurred a few API changes:

- `rand_core` no longer includes `OsRng`, so this replaces the `os_rng`
  features with `getrandom` features (same thing we did for @RustCrypto)
  which uses the `getrandom` crate directly
- For `dev-dependencies` it just migrates straight to `rand`, replacing
  `rand_chacha` with the `chacha` feature of `rand` (which pulls in
  `chacha20`), and sourcing `OsRng` from `rand`, its new home (for now)

This PR also switches to using the `rustcrypto-ff`/`rustcrypto-group` crates
(hopefully temporary) which are forks of `ff` and `group` which have crate
releases that have been updated to use  `rand_core` v0.10.0 prereleases.
2025-11-22 10:37:51 -07:00
daxpedda
c3a82a8a38
ed25519: update signature to v3.0.0-rc.4 (#828) 2025-09-14 18:11:51 -06:00
Tony Arcieri
adb6a12b4a
ed,x: Cut pre.1 prereleases (#820)
* Cut `pre.1` prereleases

These prereleases included updated RustCrypto dependencies which notably
migrate from `hybrid-array` v0.3 to v0.4
2025-09-04 11:36:45 -04:00
Martin von Zweigbergk
65a9efef98
chore(deps): bump toml to 0.9 (#818) 2025-09-04 11:32:20 -04:00
Tony Arcieri
84dc372a89
ed: bump keccak to v0.2.0-rc.0 (#823)
Also bumps `sha3` (in `dev-dependencies`) to v0.11.0-rc.3
2025-09-04 11:27:19 -04:00
Tony Arcieri
59ab400f1b
Bump RustCrypto dependencies (#815)
Updates the following dependencies (which now use `hybrid-array` v0.4
instead of v0.3):

- `blake2` v0.11.0-rc.2
- `digest` v0.11.0-rc.1
- `ed25519` v3.0.0-rc.0
- `sha2` v0.11.0-rc.2
- `sha3` v0.11.0-rc.2
- `signature` v3.0.0-rc.3
2025-09-03 17:12:43 -04:00
Arthur Gautier
246723eefe
workspace: use a global patch.crates-io to avoid duplicates (#793)
When pulling crates via git (to grab non-released yet fixes or
otherwise), the `path = "../"` in each crate crates duplicates unless
you pull the whole tree in your local `[patch.crates-io]`.

This creates issues in downstream packaging (nix, ...) where a crate
version can only appear once.
Those are somewhat difficult to diagnose.

Using a `[patch.crates-io]` in the workspace serves the same purpose but
does not create the duplication in consumers' tree.
2025-07-18 08:26:13 -06:00
Arthur Gautier
03df416703
chore(deps): bump signature to 3.0.0-rc.2 (#791)
This also relax the dependency to use future RC versions of signatures
2025-07-16 19:11:24 -06:00
daxpedda
c3f91f7620
ed25519: implement MultipartSigner/Verifier (#764) 2025-07-14 09:41:20 -05:00
Michael Rosenberg
fc8a8a5276
Cut pre.0 prereleases (#784) 2025-07-09 19:04:17 +02:00
Michael Rosenberg
6a515e60a8
Update all READMEs and CHANGELOGs (#783)
* Update changelogs and readmes

* Fix missing/wrong features in readmes

* ed: Remove std entirely

* ed: Fix deprecated warnings in bench

* Document removing std from ed
2025-07-08 21:46:55 -04:00
Michael Rosenberg
86832640ed
curve: Undeprecate Scalar::from_bits (#780) 2025-07-07 17:15:06 -04:00
Arthur Gautier
d159f47f53
ed25519-dalek: use SignatureAlgorithmIdenfier instead of the dynamic counterpart (#779)
This allows to use ed25519 to create certificates for example

This partially reverts #712
2025-07-07 13:57:47 -06:00
Arthur Gautier
a99efe2304
curve,ed,x: Bump rand_core to 0.9 (#777)
---------

Co-authored-by: pinkforest <36498018+pinkforest@users.noreply.github.com>
2025-07-07 15:36:11 -04:00
Tony Arcieri
a9aa94736b
Bump digest, ed25519, signature, and sha2 (#676)
Bumps the aforementioned dependencies to their latest (pre)releases.
2025-07-07 11:34:26 -06:00
Steve Fan
0736088c94
ed: Don't implicitly enable zeroize for ed25519-dalek alloc feature (#761) 2025-07-07 18:02:14 +02:00
Tony Arcieri
53df025bb3
Bump edition to 2024 and crate versions to prereleases (#775)
This represents the first breaking change in a new release series,
bumping all crates to the 2024 edition of Rust.

As such, the version numbers of all crates have been incremented to
represent a new prerelease series:

- `curve25519-dalek`: v5.0.0-pre
- `ed25519-dalek`: v3.0.0-pre
- `x25519-dalek`: v3.0.0-pre

Note that this commit isn't intended to cut associated crate releases of
these on crates.io, but is merely bumping the version numbers to denote
there are pending breaking changes.

This commit also includes rustfmt changes which were made as part of the
2024 edition.

Also includes clippy fixes.
2025-07-07 11:52:25 -04:00
Tony Arcieri
44bb8cb7c1
ed: vendor merlin dependency (#774)
`merlin` is currently a blocker for upgrading to `rand_core` v0.9 by way
of the `transcript.build_rng().finalize()` function (which we only pass
`ZeroRng` to).

There is an open PR to update `rand_core` in `merlin` and I have pinged
the relevant people to take a look, hopefully: zkcrypto/merlin#11

However, in the event we can't get `merlin` updated, this at least
unblocks the `rand_core` upgrade, and is being opened as a contingency
plan for that case.

The PR has been implemented in a way that it should be easy to switch
back to upstream `merlin` in the event they upgrade `rand_core`.
2025-06-20 16:54:16 -04:00
Duy Do
055ca55bcb
Remove confusing docs (#772) 2025-06-15 08:01:41 -06:00
Tony Arcieri
ad4a37df53
CI: bump clippy to Rust 1.87 (#768)
* CI: bump `clippy` to Rust 1.87

Performs a `cargo clippy --fix`

* ed25519: fix warning

* Rename solitary `'b` lifetimes to `'a`
2025-06-06 18:30:32 +02:00
Tony Arcieri
5e0b429b05
Add typos action and correct typos (#766)
* Add `typos` action and correct typos

https://github.com/crate-ci/typos

* Add `name` to `typos` job
2025-06-04 17:40:10 +02:00
daxpedda
ea6ffc354e
Implement Debug and Eq for ExpandedSecretKey (#748) 2025-06-04 10:27:23 -04:00
Michael Rosenberg
08d7176d58
ed: Expose hazmat::raw_sign_byupdate() for streamed signing (#765)
* Added raw_sign_byupdate to hazmat; refactored other funcs to use that directly
2025-06-03 09:14:22 -04:00
Rob Ede
6dc7a1c7c5
Verify by digest update + StreamVerifier (#735)
* Replace recompute_R with a separate RCompute

This struct can be use to implement verifiers with incremental updates

* Add raw_sign_byupdate and raw_verify_byupdate

These allow signing/verifying a non-prehashed message
but don't require the whole message to be provided at once.

* Tests for raw_sign_byupdate, raw_verify_byupdate

* Add StreamVerifier

* Make StreamVerifier use RCompute

This allows it to use the same implementation as non-stream signature
verification.

* Guard StreamVerifier behind hazmat feature

* docs: disambiguate unsafety

Co-authored-by: Tony Arcieri <bascule@gmail.com>

* chore: relax F bounds on raw_verify_byupdate

* chore: remove raw_sign_byupdate and raw_verify_byupdate

* chore: address clippy lints within new code

* docs: fixup changelog

* test: invert new chunked test

* chore: revert raw_sign

---------

Co-authored-by: Matt Johnston <matt@ucc.asn.au>
Co-authored-by: Tony Arcieri <bascule@gmail.com>
2025-06-02 18:30:57 -04:00
Arthur Gautier
773a0646ce
fixup ci: unsafe usage on nightly and bump ed25519's MSRV (#753)
* ed25519-dalek: bump MSRV to 1.81

base64ct now requires rustc 1.81

* nightly and stable disagree on usage of unsafe

```
error: unnecessary `unsafe` block
492
   --> curve25519-dalek/src/backend/vector/avx2/field.rs:479:28
493
    |
494
479 |         let c9_19: u32x8 = unsafe {
495
    |                            ^^^^^^ unnecessary `unsafe` block
```

This would only happen on nightly.
2025-05-08 12:37:08 -06:00
Bryant Luk
4570d806ee
Fix typo in README.md Malleability definition (#690) 2025-01-03 12:26:16 -05:00
Julius Liu
43a16f03d4
Implement DynSignatureAlgorithmIdentifier trait for ed25519 (#712) 2024-10-07 18:01:13 -06:00
Arthur Gautier
cbf794d883
{curve,ed}25519-dalek: clippy fixes (#710)
Clippy 1.81 brings new lints, this fixes those warnings
2024-09-30 15:09:28 -06:00
Tony Arcieri
d5ef57a3c2
ed: update VerifyingKey::from_bytes with ZIP-215 info (#704)
Removes the previous warning that points are unvalidated: they're
validated using the ZIP-215 rules, which allows unreduced y-coordinates.
Points are ensured valid by performing decompression, which finds a
solution to the curve equation, or returns an error.

Adds references to ZIP-215 and dalek-cryptography/curve25519-dalek#626
which is an issue about potentially adding support for the RFC8032/NIST
validation criteria in the future.
2024-09-19 18:43:32 -04:00
Hiroki Kobayashi
1efe6a93b1
Fix a minor typo in signing.rs (#649)
an -> a
2024-04-13 19:37:33 -06:00
Boyd Kane
cc3421a22f
Indicate that the rand_core feature is required (#641) 2024-03-16 07:43:25 -06:00
pinkforest(she/her)
858c4ca8ae
Address new nightly clippy unnecessary qualifications (#639) 2024-03-07 16:58:20 -07:00
pinkforest(she/her)
19c7f4a5d5
Fix new nightly redundant import lint warns (#638) 2024-02-29 18:56:52 -07:00
Flori
a62e4a5c57
Fix minor spelling mistakes (#629) 2024-02-14 12:01:05 -07:00
Jack Lloyd
17eab3d6c1
ed: Make it possible to convert between VerifyingKey and EdwardsPoint (#624)
Adds VerifyingKey::to_edwards and a From conversion

See #623
2024-02-12 14:36:43 -05:00
Michael Rosenberg
4ac84dd066
curve,ed,x: Bump patch version to reflect fix to nightly SIMD build (#621) 2024-02-06 20:09:18 -05:00
Ford
ba737a3790
Update README.md (#613) 2024-01-21 08:27:47 -07:00
Pioua
0b45e00ad5
chore: typo fix (#608) 2023-12-13 08:10:05 -07:00