mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-07 20:50:39 +00:00
Prep v5.0-rc.0 (#906)
* Bump versions for release * Correct internal lizard docs * Make changelogs more thorough
This commit is contained in:
parent
13ac5e66a7
commit
70e82aa855
11 changed files with 43 additions and 92 deletions
6
Cargo.lock
generated
6
Cargo.lock
generated
|
|
@ -305,7 +305,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "curve25519-dalek"
|
name = "curve25519-dalek"
|
||||||
version = "5.0.0-pre.6"
|
version = "5.0.0-rc.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"cpufeatures",
|
"cpufeatures",
|
||||||
|
|
@ -370,7 +370,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ed25519-dalek"
|
name = "ed25519-dalek"
|
||||||
version = "3.0.0-pre.6"
|
version = "3.0.0-rc.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"blake2",
|
"blake2",
|
||||||
"chacha20",
|
"chacha20",
|
||||||
|
|
@ -1466,7 +1466,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "x25519-dalek"
|
name = "x25519-dalek"
|
||||||
version = "3.0.0-pre.6"
|
version = "3.0.0-rc.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"criterion",
|
"criterion",
|
||||||
"curve25519-dalek",
|
"curve25519-dalek",
|
||||||
|
|
|
||||||
|
|
@ -5,43 +5,26 @@ major series.
|
||||||
|
|
||||||
## 5.x series
|
## 5.x series
|
||||||
|
|
||||||
## 5.0.0-pre.6
|
### 5.0.0-rc.0 - 2026-05-28
|
||||||
|
|
||||||
|
* Remove `ff` and `group` features until they have a release ([#907](https://github.com/dalek-cryptography/curve25519-dalek/pull/907))
|
||||||
|
* Perf: Use maximum available NAF window size in `VartimePrecomputedStraus` ([#848](https://github.com/dalek-cryptography/curve25519-dalek/pull/848))
|
||||||
|
* Add Lizard bytes-to-point injection for Ristretto. Gated under `lizard` feature. ([#826](https://github.com/dalek-cryptography/curve25519-dalek/pull/826))
|
||||||
|
* Rename `Scalar::batch_invert` -> `Scalar::invert_batch` for consistency. Also make it no-alloc. ([#789](https://github.com/dalek-cryptography/curve25519-dalek/pull/789))
|
||||||
|
* Add an allocating batch inversion called `Scalar::invert_batch_alloc` ([#789](https://github.com/dalek-cryptography/curve25519-dalek/pull/789))
|
||||||
|
* Add `Scalar::div_by_2` ([#805](https://github.com/dalek-cryptography/curve25519-dalek/pull/805))
|
||||||
|
* Add `EdwardsPoint::hash_to_curve` ([#786](https://github.com/dalek-cryptography/curve25519-dalek/pull/786))
|
||||||
|
* Undeprecate `Scalar::from_bits()`
|
||||||
|
* Remove deprecated functions `FieldElement::as_bytes()` and `EdwardsPoint::nonspec_map_to_curve()`
|
||||||
* Upgrade `rand_core` dependency to v0.10.0
|
* Upgrade `rand_core` dependency to v0.10.0
|
||||||
* Upgrade `digest` and `sha2` deps
|
* Upgrade `digest` and `sha2` deps
|
||||||
|
|
||||||
## 5.0.0-pre.5
|
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-6
|
|
||||||
|
|
||||||
## 5.0.0-pre.4
|
|
||||||
|
|
||||||
* Add allocation-free `EdwardsPoint::compress_batch()`
|
|
||||||
* Perf: Use maximum available NAF window size in `VartimePrecomputedStraus`
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-3
|
|
||||||
|
|
||||||
## 5.0.0-pre.3
|
|
||||||
|
|
||||||
* Add Lizard bytes-to-point injection for Ristretto. Gated under `lizard` feature.
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-2
|
|
||||||
|
|
||||||
## 5.0.0-pre.1
|
|
||||||
|
|
||||||
* Rename `Scalar::batch_invert` -> `Scalar::invert_batch` for consistency. Also make it no-alloc.
|
|
||||||
* Add an allocating batch inversion called `Scalar::invert_batch_alloc`.
|
|
||||||
* Add `Scalar::div_by_2`
|
|
||||||
|
|
||||||
## 5.0.0-pre.0
|
|
||||||
|
|
||||||
* Update edition to 2024
|
* Update edition to 2024
|
||||||
* Update the MSRV from 1.60 to 1.85
|
* Update the MSRV from 1.60 to 1.85
|
||||||
* Remove deprecated functions `FieldElement::as_bytes()` and `EdwardsPoint::nonspec_map_to_curve()`
|
|
||||||
* Use constant-time equality testing for compressed Ristretto and Edwards points, rather than autoderived equality
|
* Use constant-time equality testing for compressed Ristretto and Edwards points, rather than autoderived equality
|
||||||
* Undeprecate `Scalar::from_bits()`
|
|
||||||
|
|
||||||
## 4.x series
|
## 4.x series
|
||||||
|
|
||||||
### 4.2.0 [YANKED]
|
### 4.2.0 [YANKED] - 2025-07-08
|
||||||
|
|
||||||
NOTE: yanked because `hash_to_curve` was improperly implemented (#785)
|
NOTE: yanked because `hash_to_curve` was improperly implemented (#785)
|
||||||
|
|
||||||
|
|
@ -52,7 +35,7 @@ NOTE: yanked because `hash_to_curve` was improperly implemented (#785)
|
||||||
* Add batch conversion function `EdwardsPoint::to_montgomery_batch()`
|
* Add batch conversion function `EdwardsPoint::to_montgomery_batch()`
|
||||||
* Make `VartimePrecomputedStraus::optional_mixed_multiscalar_mul()` and `VartimeRistrettoPrecomputation::vartime_mixed_multiscalar_mul()` accept more points than static scalars
|
* Make `VartimePrecomputedStraus::optional_mixed_multiscalar_mul()` and `VartimeRistrettoPrecomputation::vartime_mixed_multiscalar_mul()` accept more points than static scalars
|
||||||
|
|
||||||
### 4.1.3
|
### 4.1.3 - 2024-06-18
|
||||||
|
|
||||||
* Security: Fix timing leak in Scalar subtraction on u32, u64, fiat_u32, and fiat_u64 backends
|
* Security: Fix timing leak in Scalar subtraction on u32, u64, fiat_u32, and fiat_u64 backends
|
||||||
* Fix assorted new warnings and lints from rustc and clippy
|
* Fix assorted new warnings and lints from rustc and clippy
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ name = "curve25519-dalek"
|
||||||
# Before incrementing:
|
# Before incrementing:
|
||||||
# - update CHANGELOG
|
# - update CHANGELOG
|
||||||
# - update README if required by semver
|
# - update README if required by semver
|
||||||
version = "5.0.0-pre.6"
|
version = "5.0.0-rc.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.85.0"
|
rust-version = "1.85.0"
|
||||||
authors = [
|
authors = [
|
||||||
|
|
|
||||||
|
|
@ -30,12 +30,10 @@ cofactor-related abstraction mismatches.
|
||||||
|
|
||||||
# Use
|
# Use
|
||||||
|
|
||||||
## Stable
|
|
||||||
|
|
||||||
To import `curve25519-dalek`, add the following to the dependencies section of
|
To import `curve25519-dalek`, add the following to the dependencies section of
|
||||||
your project's `Cargo.toml`:
|
your project's `Cargo.toml`:
|
||||||
```toml
|
```toml
|
||||||
curve25519-dalek = "5.0.0-pre.6"
|
curve25519-dalek = "5.0.0-rc.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
If opting into [SemVer-exempted features](#public-api-semver-exemptions) a range
|
If opting into [SemVer-exempted features](#public-api-semver-exemptions) a range
|
||||||
|
|
@ -74,6 +72,7 @@ latest breaking changes in high level are below:
|
||||||
* Remove deprecated functions `FieldElement::as_bytes()` and `EdwardsPoint::nonspec_map_to_curve()`
|
* Remove deprecated functions `FieldElement::as_bytes()` and `EdwardsPoint::nonspec_map_to_curve()`
|
||||||
* Use constant-time equality testing for compressed Ristretto and Edwards points, rather than autoderived equality
|
* Use constant-time equality testing for compressed Ristretto and Edwards points, rather than autoderived equality
|
||||||
* Undeprecate `Scalar::from_bits()`
|
* Undeprecate `Scalar::from_bits()`
|
||||||
|
* Remove `group` and `group-bits` features temporarily. Will reinstate once the underlying deps have a release.
|
||||||
|
|
||||||
# Backends
|
# Backends
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,11 @@ impl RistrettoPoint {
|
||||||
if n_found == 1 { Some(result) } else { None }
|
if n_found == 1 { Some(result) } else { None }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Computes the at most 8 positive FieldElements f such that `self ==
|
/// Computes the at most 16 FieldElements f such that `self ==
|
||||||
/// RistrettoPoint::elligator_ristretto_flavor(f)`.
|
/// RistrettoPoint::elligator_ristretto_flavor(f)`.
|
||||||
|
/// The first 8 return values are positive field elements (i.e., have the LSB (`bytes[0] & 1`)
|
||||||
|
/// unset), if defined. The last 8 return values are negative field elements (i.e., have the LSB
|
||||||
|
/// set), if defined.
|
||||||
fn elligator_ristretto_flavor_inverse(&self) -> [CtOption<FieldElement>; 16] {
|
fn elligator_ristretto_flavor_inverse(&self) -> [CtOption<FieldElement>; 16] {
|
||||||
// Elligator2 computes a Point from a FieldElement in two steps: first
|
// Elligator2 computes a Point from a FieldElement in two steps: first
|
||||||
// it computes a (s,t) on the Jacobi quartic and then computes the
|
// it computes a (s,t) on the Jacobi quartic and then computes the
|
||||||
|
|
|
||||||
|
|
@ -8,48 +8,30 @@ Entries are listed in reverse chronological order per undeprecated major series.
|
||||||
|
|
||||||
# 3.x series
|
# 3.x series
|
||||||
|
|
||||||
## 3.0.0-pre.7
|
## 3.0.0-rc.0 - 2026-05-28
|
||||||
|
|
||||||
|
* Add allocation-free `EdwardsPoint::compress_batch` ([#832](https://github.com/dalek-cryptography/curve25519-dalek/pull/832))
|
||||||
|
* Add `strobe-rs` dependency and delete vendored STROBE impl ([#895](https://github.com/dalek-cryptography/curve25519-dalek/pull/895))
|
||||||
|
* Make signing and verifying keys use `pkcs8::spki::SignatureAlgorithmIdentifier` instead of `DynSignatureAlgorithmIdentifier` ([#779](https://github.com/dalek-cryptography/curve25519-dalek/pull/779))
|
||||||
|
* Impl `MultipartSigner` and `MultipartVerifier` for `SigningKey` and `VerifyingKey` ([#764](https://github.com/dalek-cryptography/curve25519-dalek/pull/764))
|
||||||
* Upgrade `ed25519` dependency to v3.0.0
|
* Upgrade `ed25519` dependency to v3.0.0
|
||||||
* Upgrade `signature` dependency to v3.0.0
|
* Upgrade `signature` dependency to v3.0.0
|
||||||
* Upgrade `sha3` dependency to v0.11
|
* Upgrade `sha2` and `sha3` dependencies to v0.11
|
||||||
* Upgrade `getrandom` dependency to v0.4
|
* Upgrade `getrandom` dependency to v0.4
|
||||||
* Upgrade `chacha20` dependency to v0.10
|
* Upgrade `chacha20` dependency to v0.10
|
||||||
* Add `strobe-rs` dependency and delete vendored STROBE impl
|
|
||||||
|
|
||||||
## 3.0.0-pre.6
|
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0
|
* Upgrade `rand_core` dependency to v0.10.0
|
||||||
* Upgrade `digest` and `sha2` deps
|
|
||||||
|
|
||||||
## 3.0.0-pre.5
|
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-6
|
|
||||||
|
|
||||||
## 3.0.0-pre.4
|
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-3
|
|
||||||
|
|
||||||
## 3.0.0-pre.3
|
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-2
|
|
||||||
|
|
||||||
## 3.0.0-pre.0
|
|
||||||
|
|
||||||
* Update edition to 2024
|
* Update edition to 2024
|
||||||
* Update the MSRV from 1.60 to 1.85
|
* Update the MSRV from 1.60 to 1.85
|
||||||
* Update `ed25519` and `signature` deps
|
* Remove `std` feature now that `error::Error` is in `core`
|
||||||
* Remove `std` feature
|
|
||||||
* Make signing and verifying keys use `pkcs8::spki::SignatureAlgorithmIdentifier` instead of `DynSignatureAlgorithmIdentifier`
|
|
||||||
|
|
||||||
# 2.x series
|
# 2.x series
|
||||||
|
|
||||||
## 2.2.0
|
## 2.2.0 - 2025-07-08
|
||||||
|
|
||||||
* Add `hazmat`-gated methods `SigningKey::verify_stream()` and `VerifyingKey::verify_stream()`
|
* Add `hazmat`-gated methods `SigningKey::verify_stream()` and `VerifyingKey::verify_stream()`
|
||||||
* Add `Debug` and `Eq` traits for `hazmat::ExpandedSecretKey`
|
* Add `Debug` and `Eq` traits for `hazmat::ExpandedSecretKey`
|
||||||
|
|
||||||
## 2.1.1
|
## 2.1.1 - 2024-02-06
|
||||||
|
|
||||||
* Fix nightly SIMD build
|
* Fix nightly SIMD build
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "ed25519-dalek"
|
name = "ed25519-dalek"
|
||||||
version = "3.0.0-pre.7"
|
version = "3.0.0-rc.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
authors = [
|
authors = [
|
||||||
"isis lovecruft <isis@patternsinthevoid.net>",
|
"isis lovecruft <isis@patternsinthevoid.net>",
|
||||||
|
|
@ -28,7 +28,7 @@ rustdoc-args = [
|
||||||
all-features = true
|
all-features = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
curve25519-dalek = { version = "=5.0.0-pre.6", default-features = false, features = [
|
curve25519-dalek = { version = "5.0.0-rc.0", default-features = false, features = [
|
||||||
"digest",
|
"digest",
|
||||||
] }
|
] }
|
||||||
ed25519 = { version = "3", default-features = false }
|
ed25519 = { version = "3", default-features = false }
|
||||||
|
|
@ -44,11 +44,11 @@ zeroize = { version = "1.5", default-features = false, optional = true }
|
||||||
strobe-rs = { version = "0.13", optional = true }
|
strobe-rs = { version = "0.13", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
curve25519-dalek = { version = "=5.0.0-pre.6", default-features = false, features = [
|
curve25519-dalek = { version = "5.0.0-rc.0", default-features = false, features = [
|
||||||
"digest",
|
"digest",
|
||||||
"rand_core",
|
"rand_core",
|
||||||
] }
|
] }
|
||||||
x25519-dalek = { version = "=3.0.0-pre.6", default-features = false, features = [
|
x25519-dalek = { version = "3.0.0-rc.0", default-features = false, features = [
|
||||||
"static_secrets",
|
"static_secrets",
|
||||||
] }
|
] }
|
||||||
blake2 = "0.11.0-rc.6"
|
blake2 = "0.11.0-rc.6"
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ verification.
|
||||||
To import `ed25519-dalek`, add the following to the dependencies section of
|
To import `ed25519-dalek`, add the following to the dependencies section of
|
||||||
your project's `Cargo.toml`:
|
your project's `Cargo.toml`:
|
||||||
```toml
|
```toml
|
||||||
ed25519-dalek = "3.0.0-pre.7"
|
ed25519-dalek = "3.0.0-rc.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
# Feature Flags
|
# Feature Flags
|
||||||
|
|
|
||||||
|
|
@ -4,36 +4,20 @@ Entries are listed in reverse chronological order.
|
||||||
|
|
||||||
# 3.x Series
|
# 3.x Series
|
||||||
|
|
||||||
## 3.0.0-pre.6
|
## 3.0.0-rc.0 - 2026-05-28
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0
|
|
||||||
|
|
||||||
## 3.0.0-pre.5
|
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-6
|
|
||||||
|
|
||||||
## 3.0.0-pre.4
|
|
||||||
|
|
||||||
* Removed `alloc` feature flag, which was doing nothing
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-3
|
|
||||||
|
|
||||||
## 3.0.0-pre.3
|
|
||||||
|
|
||||||
* Upgrade `rand_core` dependency to v0.10.0-rc-2
|
|
||||||
|
|
||||||
## 3.0.0-pre.0
|
|
||||||
|
|
||||||
|
* Remove `alloc` feature flag, which was doing nothing
|
||||||
* Update edition to 2024
|
* Update edition to 2024
|
||||||
* Update the MSRV from 1.60 to 1.85
|
* Update the MSRV from 1.60 to 1.85
|
||||||
* Update `rand_core` dep
|
|
||||||
* Remove `Zeroize` impl for `x25519::{EphemeralSecret, ReusableSecret, SharedSecret, StaticSecret}` to prevent misuse. These are now only zeroized on drop.
|
* Remove `Zeroize` impl for `x25519::{EphemeralSecret, ReusableSecret, SharedSecret, StaticSecret}` to prevent misuse. These are now only zeroized on drop.
|
||||||
* Remove deprecated functions `{Ephemeral,Reusable,Static}Secret::new()`
|
* Remove deprecated functions `{Ephemeral,Reusable,Static}Secret::new()`
|
||||||
|
* Upgrade `rand_core` dependency to v0.10.0
|
||||||
|
|
||||||
# 2.x Series
|
# 2.x Series
|
||||||
|
|
||||||
* Note: All `x255919-dalek` 2.x releases are in sync with the underlying `curve25519-dalek` 4.x releases.
|
* Note: All `x255919-dalek` 2.x releases are in sync with the underlying `curve25519-dalek` 4.x releases.
|
||||||
|
|
||||||
## 2.0.1
|
## 2.0.1 - 2024-02-06
|
||||||
|
|
||||||
* Fix nightly SIMD build
|
* Fix nightly SIMD build
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ edition = "2024"
|
||||||
# - update html_root_url
|
# - update html_root_url
|
||||||
# - update CHANGELOG
|
# - update CHANGELOG
|
||||||
# - if any changes were made to README.md, mirror them in src/lib.rs docs
|
# - if any changes were made to README.md, mirror them in src/lib.rs docs
|
||||||
version = "3.0.0-pre.6"
|
version = "3.0.0-rc.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Isis Lovecruft <isis@patternsinthevoid.net>",
|
"Isis Lovecruft <isis@patternsinthevoid.net>",
|
||||||
"DebugSteven <debugsteven@gmail.com>",
|
"DebugSteven <debugsteven@gmail.com>",
|
||||||
|
|
@ -42,7 +42,7 @@ rustdoc-args = [
|
||||||
all-features = true
|
all-features = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
curve25519-dalek = { version = "=5.0.0-pre.6", default-features = false }
|
curve25519-dalek = { version = "5.0.0-rc.0", default-features = false }
|
||||||
rand_core = { version = "0.10", default-features = false }
|
rand_core = { version = "0.10", default-features = false }
|
||||||
|
|
||||||
# optional dependencies
|
# optional dependencies
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ To import `x25519-dalek`, add the following to your project's `Cargo.toml`:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[dependencies]
|
[dependencies]
|
||||||
x25519-dalek = "3.0.0-pre.6"
|
x25519-dalek = "3.0.0-rc.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
# Feature Flags
|
# Feature Flags
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue