From 53df025bb3b7e52906f949a4766c39e362abd308 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Mon, 7 Jul 2025 09:52:25 -0600 Subject: [PATCH] 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. --- .github/workflows/curve25519-dalek.yml | 4 +-- .github/workflows/ed25519-dalek.yml | 4 +-- .github/workflows/x25519-dalek.yml | 4 +-- curve25519-dalek/Cargo.toml | 6 ++-- curve25519-dalek/benches/dalek_benchmarks.rs | 4 +-- curve25519-dalek/build.rs | 4 ++- .../src/backend/serial/curve_models/mod.rs | 7 ++-- .../src/backend/vector/avx2/field.rs | 2 +- curve25519-dalek/src/edwards.rs | 12 +++---- curve25519-dalek/src/edwards/affine.rs | 2 +- curve25519-dalek/src/field.rs | 6 ++-- curve25519-dalek/src/montgomery.rs | 2 +- curve25519-dalek/src/ristretto.rs | 6 ++-- curve25519-dalek/src/scalar.rs | 10 +++--- curve25519-dalek/src/traits.rs | 2 +- ed25519-dalek/Cargo.toml | 12 +++---- ed25519-dalek/benches/ed25519_benchmarks.rs | 2 +- ed25519-dalek/src/batch.rs | 2 +- ed25519-dalek/src/batch/transcript.rs | 2 +- ed25519-dalek/src/hazmat.rs | 6 ++-- ed25519-dalek/src/lib.rs | 2 +- ed25519-dalek/src/signing.rs | 4 +-- ed25519-dalek/src/verifying.rs | 2 +- ed25519-dalek/src/verifying/stream.rs | 2 +- ed25519-dalek/tests/ed25519.rs | 34 +++++++++++-------- ed25519-dalek/tests/validation_criteria.rs | 2 +- ed25519-dalek/tests/x25519.rs | 2 +- x25519-dalek/Cargo.toml | 8 ++--- x25519-dalek/benches/x25519.rs | 2 +- 29 files changed, 84 insertions(+), 73 deletions(-) diff --git a/.github/workflows/curve25519-dalek.yml b/.github/workflows/curve25519-dalek.yml index 1fb13aa..3f688b4 100644 --- a/.github/workflows/curve25519-dalek.yml +++ b/.github/workflows/curve25519-dalek.yml @@ -130,7 +130,7 @@ jobs: run: cargo test --no-default-features --features alloc,precomputed-tables,zeroize,group-bits --target x86_64-unknown-linux-gnu msrv: - name: Current MSRV is 1.60.0 + name: Current MSRV is 1.85.0 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -139,7 +139,7 @@ jobs: - run: cargo update -Z minimal-versions # Now check that `cargo build` works with respect to the oldest possible # deps and the stated MSRV - - uses: dtolnay/rust-toolchain@1.60.0 + - uses: dtolnay/rust-toolchain@1.85.0 - run: cargo build --no-default-features --features serde # Also make sure the AVX2 build works - run: cargo build --target x86_64-unknown-linux-gnu diff --git a/.github/workflows/ed25519-dalek.yml b/.github/workflows/ed25519-dalek.yml index 52387c9..4e931ce 100644 --- a/.github/workflows/ed25519-dalek.yml +++ b/.github/workflows/ed25519-dalek.yml @@ -20,7 +20,7 @@ env: jobs: msrv: - name: Current MSRV is 1.81.0 + name: Current MSRV is 1.85.0 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -29,5 +29,5 @@ jobs: - run: cargo update -Z minimal-versions # Now check that `cargo build` works with respect to the oldest possible # deps and the stated MSRV - - uses: dtolnay/rust-toolchain@1.81.0 + - uses: dtolnay/rust-toolchain@1.85.0 - run: cargo build diff --git a/.github/workflows/x25519-dalek.yml b/.github/workflows/x25519-dalek.yml index 0ece0dc..217a291 100644 --- a/.github/workflows/x25519-dalek.yml +++ b/.github/workflows/x25519-dalek.yml @@ -20,7 +20,7 @@ env: jobs: msrv: - name: Current MSRV is 1.60.0 + name: Current MSRV is 1.85.0 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -29,5 +29,5 @@ jobs: - run: cargo update -Z minimal-versions # Now check that `cargo build` works with respect to the oldest possible # deps and the stated MSRV - - uses: dtolnay/rust-toolchain@1.60.0 + - uses: dtolnay/rust-toolchain@1.85.0 - run: cargo build diff --git a/curve25519-dalek/Cargo.toml b/curve25519-dalek/Cargo.toml index f647860..ef7a0ad 100644 --- a/curve25519-dalek/Cargo.toml +++ b/curve25519-dalek/Cargo.toml @@ -4,9 +4,9 @@ name = "curve25519-dalek" # - update CHANGELOG # - update README if required by semver # - if README was updated, also update module documentation in src/lib.rs -version = "4.1.3" -edition = "2021" -rust-version = "1.60.0" +version = "5.0.0-pre" +edition = "2024" +rust-version = "1.85.0" authors = ["Isis Lovecruft ", "Henry de Valence "] readme = "README.md" diff --git a/curve25519-dalek/benches/dalek_benchmarks.rs b/curve25519-dalek/benches/dalek_benchmarks.rs index ef136ff..72a326e 100644 --- a/curve25519-dalek/benches/dalek_benchmarks.rs +++ b/curve25519-dalek/benches/dalek_benchmarks.rs @@ -1,9 +1,9 @@ #![allow(non_snake_case)] -use rand::{rngs::OsRng, thread_rng, RngCore}; +use rand::{RngCore, rngs::OsRng, thread_rng}; use criterion::{ - criterion_main, measurement::Measurement, BatchSize, BenchmarkGroup, BenchmarkId, Criterion, + BatchSize, BenchmarkGroup, BenchmarkId, Criterion, criterion_main, measurement::Measurement, }; #[cfg(feature = "digest")] use sha2::Sha512; diff --git a/curve25519-dalek/build.rs b/curve25519-dalek/build.rs index b062078..0460b8c 100644 --- a/curve25519-dalek/build.rs +++ b/curve25519-dalek/build.rs @@ -84,7 +84,9 @@ fn main() { } } Ok("unstable_avx512") if !nightly => { - panic!("Could not override curve25519_dalek_backend to unstable_avx512, as this is nightly only"); + panic!( + "Could not override curve25519_dalek_backend to unstable_avx512, as this is nightly only" + ); } // default between serial / simd (if potentially capable) _ => match is_capable_simd(&target_arch, curve25519_dalek_bits) { diff --git a/curve25519-dalek/src/backend/serial/curve_models/mod.rs b/curve25519-dalek/src/backend/serial/curve_models/mod.rs index bac155d..18c851e 100644 --- a/curve25519-dalek/src/backend/serial/curve_models/mod.rs +++ b/curve25519-dalek/src/backend/serial/curve_models/mod.rs @@ -558,7 +558,10 @@ impl Debug for AffineNielsPoint { impl Debug for ProjectiveNielsPoint { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - write!(f, "ProjectiveNielsPoint{{\n\tY_plus_X: {:?},\n\tY_minus_X: {:?},\n\tZ: {:?},\n\tT2d: {:?}\n}}", - &self.Y_plus_X, &self.Y_minus_X, &self.Z, &self.T2d) + write!( + f, + "ProjectiveNielsPoint{{\n\tY_plus_X: {:?},\n\tY_minus_X: {:?},\n\tZ: {:?},\n\tT2d: {:?}\n}}", + &self.Y_plus_X, &self.Y_minus_X, &self.Z, &self.T2d + ) } } diff --git a/curve25519-dalek/src/backend/vector/avx2/field.rs b/curve25519-dalek/src/backend/vector/avx2/field.rs index 5c42b9c..a276def 100644 --- a/curve25519-dalek/src/backend/vector/avx2/field.rs +++ b/curve25519-dalek/src/backend/vector/avx2/field.rs @@ -50,7 +50,7 @@ use core::ops::{Add, Mul, Neg}; use crate::backend::serial::u64::field::FieldElement51; use crate::backend::vector::avx2::constants::{ - P_TIMES_16_HI, P_TIMES_16_LO, P_TIMES_2_HI, P_TIMES_2_LO, + P_TIMES_2_HI, P_TIMES_2_LO, P_TIMES_16_HI, P_TIMES_16_LO, }; use curve25519_dalek_derive::unsafe_target_feature; diff --git a/curve25519-dalek/src/edwards.rs b/curve25519-dalek/src/edwards.rs index dac3a86..2031e17 100644 --- a/curve25519-dalek/src/edwards.rs +++ b/curve25519-dalek/src/edwards.rs @@ -106,13 +106,13 @@ use core::ops::{Mul, MulAssign}; #[cfg(feature = "digest")] use digest::{ - consts::True, crypto_common::BlockSizeUser, generic_array::typenum::U64, typenum::IsGreater, - Digest, FixedOutput, HashMarker, + Digest, FixedOutput, HashMarker, consts::True, crypto_common::BlockSizeUser, + generic_array::typenum::U64, typenum::IsGreater, }; #[cfg(feature = "group")] use { - group::{cofactor::CofactorGroup, prime::PrimeGroup, GroupEncoding}, + group::{GroupEncoding, cofactor::CofactorGroup, prime::PrimeGroup}, subtle::CtOption, }; @@ -130,7 +130,7 @@ use zeroize::Zeroize; use crate::constants; use crate::field::FieldElement; -use crate::scalar::{clamp_integer, Scalar}; +use crate::scalar::{Scalar, clamp_integer}; use crate::montgomery::MontgomeryPoint; @@ -141,8 +141,8 @@ use crate::backend::serial::curve_models::ProjectivePoint; #[cfg(feature = "precomputed-tables")] use crate::window::{ - LookupTableRadix128, LookupTableRadix16, LookupTableRadix256, LookupTableRadix32, - LookupTableRadix64, + LookupTableRadix16, LookupTableRadix32, LookupTableRadix64, LookupTableRadix128, + LookupTableRadix256, }; #[cfg(feature = "precomputed-tables")] diff --git a/curve25519-dalek/src/edwards/affine.rs b/curve25519-dalek/src/edwards/affine.rs index aa68d8e..301037e 100644 --- a/curve25519-dalek/src/edwards/affine.rs +++ b/curve25519-dalek/src/edwards/affine.rs @@ -1,6 +1,6 @@ use super::{CompressedEdwardsY, EdwardsPoint}; use crate::traits::Identity; -use crate::{field::FieldElement, Scalar}; +use crate::{Scalar, field::FieldElement}; use core::ops::Mul; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq}; diff --git a/curve25519-dalek/src/field.rs b/curve25519-dalek/src/field.rs index 76fba2d..d1214ac 100644 --- a/curve25519-dalek/src/field.rs +++ b/curve25519-dalek/src/field.rs @@ -37,10 +37,10 @@ use crate::constants; #[cfg(feature = "digest")] use digest::{ - core_api::BlockSizeUser, - generic_array::{typenum::U64, GenericArray}, - typenum::{IsGreater, True}, Digest, FixedOutput, HashMarker, + core_api::BlockSizeUser, + generic_array::{GenericArray, typenum::U64}, + typenum::{IsGreater, True}, }; cfg_if! { diff --git a/curve25519-dalek/src/montgomery.rs b/curve25519-dalek/src/montgomery.rs index 35ae09a..577d9f6 100644 --- a/curve25519-dalek/src/montgomery.rs +++ b/curve25519-dalek/src/montgomery.rs @@ -57,7 +57,7 @@ use core::{ use crate::constants::{APLUS2_OVER_FOUR, MONTGOMERY_A, MONTGOMERY_A_NEG}; use crate::edwards::{CompressedEdwardsY, EdwardsPoint}; use crate::field::FieldElement; -use crate::scalar::{clamp_integer, Scalar}; +use crate::scalar::{Scalar, clamp_integer}; use crate::traits::Identity; diff --git a/curve25519-dalek/src/ristretto.rs b/curve25519-dalek/src/ristretto.rs index 8e14c10..0edfb09 100644 --- a/curve25519-dalek/src/ristretto.rs +++ b/curve25519-dalek/src/ristretto.rs @@ -172,17 +172,17 @@ use core::ops::{Mul, MulAssign}; #[cfg(any(test, feature = "rand_core"))] use rand_core::CryptoRngCore; -#[cfg(feature = "digest")] -use digest::generic_array::typenum::U64; #[cfg(feature = "digest")] use digest::Digest; +#[cfg(feature = "digest")] +use digest::generic_array::typenum::U64; use crate::constants; use crate::field::FieldElement; #[cfg(feature = "group")] use { - group::{cofactor::CofactorGroup, prime::PrimeGroup, GroupEncoding}, + group::{GroupEncoding, cofactor::CofactorGroup, prime::PrimeGroup}, rand_core::RngCore, subtle::CtOption, }; diff --git a/curve25519-dalek/src/scalar.rs b/curve25519-dalek/src/scalar.rs index 5971f5c..0f12fa7 100644 --- a/curve25519-dalek/src/scalar.rs +++ b/curve25519-dalek/src/scalar.rs @@ -133,10 +133,10 @@ use rand_core::RngCore; #[cfg(any(test, feature = "rand_core"))] use rand_core::CryptoRngCore; -#[cfg(feature = "digest")] -use digest::generic_array::typenum::U64; #[cfg(feature = "digest")] use digest::Digest; +#[cfg(feature = "digest")] +use digest::generic_array::typenum::U64; use subtle::Choice; use subtle::ConditionallySelectable; @@ -1024,9 +1024,9 @@ impl Scalar { debug_assert!(w <= 8); let digits_count = match w { - 4..=7 => (256 + w - 1) / w, + 4..=7 => 256_usize.div_ceil(w), // See comment in to_radix_2w on handling the terminal carry. - 8 => (256 + w - 1) / w + 1_usize, + 8 => 256_usize.div_ceil(w) + 1_usize, _ => panic!("invalid radix parameter"), }; @@ -1073,7 +1073,7 @@ impl Scalar { let mut carry = 0u64; let mut digits = [0i8; 64]; - let digits_count = (256 + w - 1) / w; + let digits_count = 256_usize.div_ceil(w); #[allow(clippy::needless_range_loop)] for i in 0..digits_count { // Construct a buffer of bits of the scalar, starting at `bit_offset`. diff --git a/curve25519-dalek/src/traits.rs b/curve25519-dalek/src/traits.rs index 0e6fc17..834b8f2 100644 --- a/curve25519-dalek/src/traits.rs +++ b/curve25519-dalek/src/traits.rs @@ -15,7 +15,7 @@ use core::borrow::Borrow; -use crate::scalar::{clamp_integer, Scalar}; +use crate::scalar::{Scalar, clamp_integer}; use subtle::ConstantTimeEq; // ------------------------------------------------------------------------ diff --git a/ed25519-dalek/Cargo.toml b/ed25519-dalek/Cargo.toml index 9975aa6..3245029 100644 --- a/ed25519-dalek/Cargo.toml +++ b/ed25519-dalek/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ed25519-dalek" -version = "2.1.1" -edition = "2021" +version = "3.0.0-pre" +edition = "2024" authors = [ "isis lovecruft ", "Tony Arcieri ", @@ -16,7 +16,7 @@ keywords = ["cryptography", "ed25519", "curve25519", "signature", "ECC"] categories = ["cryptography", "no-std"] description = "Fast and efficient ed25519 EdDSA key generations, signing, and verification in pure Rust." exclude = [ ".gitignore", "TESTVECTORS", "VALIDATIONVECTORS", "res/*" ] -rust-version = "1.81" +rust-version = "1.85" [package.metadata.docs.rs] rustdoc-args = [ @@ -26,7 +26,7 @@ rustdoc-args = [ features = ["batch", "digest", "hazmat", "pem", "serde"] [dependencies] -curve25519-dalek = { version = "4", path = "../curve25519-dalek", default-features = false, features = ["digest"] } +curve25519-dalek = { version = "=5.0.0-pre", path = "../curve25519-dalek", default-features = false, features = ["digest"] } ed25519 = { version = ">=2.2, <2.3", default-features = false } signature = { version = ">=2.0, <2.3", optional = true, default-features = false } sha2 = { version = "0.10", default-features = false } @@ -39,8 +39,8 @@ serde = { version = "1.0", default-features = false, optional = true } zeroize = { version = "1.5", default-features = false, optional = true } [dev-dependencies] -curve25519-dalek = { version = "4", path = "../curve25519-dalek", default-features = false, features = ["digest", "rand_core"] } -x25519-dalek = { version = "2", path = "../x25519-dalek", default-features = false, features = ["static_secrets"] } +curve25519-dalek = { version = "=5.0.0-pre", path = "../curve25519-dalek", default-features = false, features = ["digest", "rand_core"] } +x25519-dalek = { version = "=3.0.0-pre", path = "../x25519-dalek", default-features = false, features = ["static_secrets"] } blake2 = "0.10" sha3 = "0.10" hex = "0.4" diff --git a/ed25519-dalek/benches/ed25519_benchmarks.rs b/ed25519-dalek/benches/ed25519_benchmarks.rs index efa419c..f5f80a1 100644 --- a/ed25519-dalek/benches/ed25519_benchmarks.rs +++ b/ed25519-dalek/benches/ed25519_benchmarks.rs @@ -7,7 +7,7 @@ // Authors: // - isis agora lovecruft -use criterion::{criterion_group, Criterion}; +use criterion::{Criterion, criterion_group}; mod ed25519_benches { use super::*; diff --git a/ed25519-dalek/src/batch.rs b/ed25519-dalek/src/batch.rs index 2c65c5c..4e1decb 100644 --- a/ed25519-dalek/src/batch.rs +++ b/ed25519-dalek/src/batch.rs @@ -30,10 +30,10 @@ use rand_core::RngCore; use sha2::Sha512; +use crate::VerifyingKey; use crate::errors::InternalError; use crate::errors::SignatureError; use crate::signature::InternalSignature; -use crate::VerifyingKey; /// Domain separation label to initialize the STROBE context. /// diff --git a/ed25519-dalek/src/batch/transcript.rs b/ed25519-dalek/src/batch/transcript.rs index 6af752c..d3a4c95 100644 --- a/ed25519-dalek/src/batch/transcript.rs +++ b/ed25519-dalek/src/batch/transcript.rs @@ -1,5 +1,5 @@ -use super::strobe::Strobe128; use super::MERLIN_PROTOCOL_LABEL; +use super::strobe::Strobe128; fn encode_usize_as_u32(x: usize) -> [u8; 4] { u32::try_from(x).expect("usize too large").to_le_bytes() diff --git a/ed25519-dalek/src/hazmat.rs b/ed25519-dalek/src/hazmat.rs index 8807a13..fa2d53c 100644 --- a/ed25519-dalek/src/hazmat.rs +++ b/ed25519-dalek/src/hazmat.rs @@ -17,7 +17,7 @@ use core::fmt::Debug; use crate::{InternalError, SignatureError}; -use curve25519_dalek::scalar::{clamp_integer, Scalar}; +use curve25519_dalek::scalar::{Scalar, clamp_integer}; use subtle::{Choice, ConstantTimeEq}; #[cfg(feature = "zeroize")] @@ -25,7 +25,7 @@ use zeroize::{Zeroize, ZeroizeOnDrop}; // These are used in the functions that are made public when the hazmat feature is set use crate::{Signature, VerifyingKey}; -use curve25519_dalek::digest::{generic_array::typenum::U64, Digest}; +use curve25519_dalek::digest::{Digest, generic_array::typenum::U64}; /// Contains the secret scalar and domain separator used for generating signatures. /// @@ -258,7 +258,7 @@ mod test { use super::*; - use rand::{rngs::OsRng, CryptoRng, RngCore}; + use rand::{CryptoRng, RngCore, rngs::OsRng}; // Pick distinct, non-spec 512-bit hash functions for message and sig-context hashing type CtxDigest = blake2::Blake2b512; diff --git a/ed25519-dalek/src/lib.rs b/ed25519-dalek/src/lib.rs index e44d753..436c215 100644 --- a/ed25519-dalek/src/lib.rs +++ b/ed25519-dalek/src/lib.rs @@ -285,10 +285,10 @@ pub use crate::signing::*; pub use crate::verifying::*; // Re-export the `Signer` and `Verifier` traits from the `signature` crate +pub use ed25519::Signature; #[cfg(feature = "digest")] pub use ed25519::signature::{DigestSigner, DigestVerifier}; pub use ed25519::signature::{Signer, Verifier}; -pub use ed25519::Signature; #[cfg(feature = "pkcs8")] pub use ed25519::pkcs8; diff --git a/ed25519-dalek/src/signing.rs b/ed25519-dalek/src/signing.rs index d54ecb0..98366d8 100644 --- a/ed25519-dalek/src/signing.rs +++ b/ed25519-dalek/src/signing.rs @@ -24,7 +24,7 @@ use sha2::Sha512; use subtle::{Choice, ConstantTimeEq}; use curve25519_dalek::{ - digest::{generic_array::typenum::U64, Digest}, + digest::{Digest, generic_array::typenum::U64}, edwards::{CompressedEdwardsY, EdwardsPoint}, scalar::Scalar, }; @@ -42,12 +42,12 @@ use zeroize::{Zeroize, ZeroizeOnDrop}; #[cfg(feature = "hazmat")] use crate::verifying::StreamVerifier; use crate::{ + Signature, constants::{KEYPAIR_LENGTH, SECRET_KEY_LENGTH}, errors::{InternalError, SignatureError}, hazmat::ExpandedSecretKey, signature::InternalSignature, verifying::VerifyingKey, - Signature, }; /// ed25519 secret key as defined in [RFC8032 ยง 5.1.5]: diff --git a/ed25519-dalek/src/verifying.rs b/ed25519-dalek/src/verifying.rs index 48e6c16..fff711c 100644 --- a/ed25519-dalek/src/verifying.rs +++ b/ed25519-dalek/src/verifying.rs @@ -13,7 +13,7 @@ use core::fmt::Debug; use core::hash::{Hash, Hasher}; use curve25519_dalek::{ - digest::{generic_array::typenum::U64, Digest}, + digest::{Digest, generic_array::typenum::U64}, edwards::{CompressedEdwardsY, EdwardsPoint}, montgomery::MontgomeryPoint, scalar::Scalar, diff --git a/ed25519-dalek/src/verifying/stream.rs b/ed25519-dalek/src/verifying/stream.rs index 771efe0..33b031a 100644 --- a/ed25519-dalek/src/verifying/stream.rs +++ b/ed25519-dalek/src/verifying/stream.rs @@ -2,7 +2,7 @@ use curve25519_dalek::edwards::CompressedEdwardsY; use sha2::Sha512; use crate::verifying::RCompute; -use crate::{signature::InternalSignature, InternalError, SignatureError, VerifyingKey}; +use crate::{InternalError, SignatureError, VerifyingKey, signature::InternalSignature}; /// An IUF verifier for ed25519. /// diff --git a/ed25519-dalek/tests/ed25519.rs b/ed25519-dalek/tests/ed25519.rs index dd49c6e..5285ac2 100644 --- a/ed25519-dalek/tests/ed25519.rs +++ b/ed25519-dalek/tests/ed25519.rs @@ -29,7 +29,7 @@ mod vectors { }; #[cfg(not(feature = "digest"))] - use sha2::{digest::Digest, Sha512}; + use sha2::{Sha512, digest::Digest}; use std::{ fs::File, @@ -104,7 +104,9 @@ mod vectors { let sec_bytes = hex!("833fe62409237b9d62ec77587520911e9a759cec1d19755b7da901b96dca3d42"); let pub_bytes = hex!("ec172b93ad5e563bf4932c70e1245034c35467ef2efd4d64ebf819683467e2bf"); let msg_bytes = hex!("616263"); - let sig_bytes = hex!("98a70222f0b8121aa9d30f813d683f809e462b469c7ff87639499bb94e6dae4131f85042463c2a355a2003d062adf5aaa10b8c61e636062aaad11c2a26083406"); + let sig_bytes = hex!( + "98a70222f0b8121aa9d30f813d683f809e462b469c7ff87639499bb94e6dae4131f85042463c2a355a2003d062adf5aaa10b8c61e636062aaad11c2a26083406" + ); let signing_key = SigningKey::from_bytes(&sec_bytes); let expected_verifying_key = VerifyingKey::from_bytes(&pub_bytes).unwrap(); @@ -268,20 +270,24 @@ mod vectors { let signature = serialize_signature(&r, &s); let vk = VerifyingKey::from_bytes(pubkey.compress().as_bytes()).unwrap(); let sig = Signature::try_from(&signature[..]).unwrap(); - assert!(vk - .verify_prehashed(message1.clone(), context_str, &sig) - .is_ok()); - assert!(vk - .verify_prehashed(message2.clone(), context_str, &sig) - .is_ok()); + assert!( + vk.verify_prehashed(message1.clone(), context_str, &sig) + .is_ok() + ); + assert!( + vk.verify_prehashed(message2.clone(), context_str, &sig) + .is_ok() + ); // Check that verify_prehashed_strict fails on both sigs - assert!(vk - .verify_prehashed_strict(message1.clone(), context_str, &sig) - .is_err()); - assert!(vk - .verify_prehashed_strict(message2.clone(), context_str, &sig) - .is_err()); + assert!( + vk.verify_prehashed_strict(message1.clone(), context_str, &sig) + .is_err() + ); + assert!( + vk.verify_prehashed_strict(message2.clone(), context_str, &sig) + .is_err() + ); } } diff --git a/ed25519-dalek/tests/validation_criteria.rs b/ed25519-dalek/tests/validation_criteria.rs index 7c45a96..f4ff650 100644 --- a/ed25519-dalek/tests/validation_criteria.rs +++ b/ed25519-dalek/tests/validation_criteria.rs @@ -1,7 +1,7 @@ use ed25519::signature::Verifier; use ed25519_dalek::{Signature, VerifyingKey}; -use serde::{de::Error as SError, Deserialize, Deserializer}; +use serde::{Deserialize, Deserializer, de::Error as SError}; use std::{collections::BTreeSet as Set, fs::File}; /// The set of edge cases that [`VerifyingKey::verify()`] permits. diff --git a/ed25519-dalek/tests/x25519.rs b/ed25519-dalek/tests/x25519.rs index 11e72a8..3c6aec6 100644 --- a/ed25519-dalek/tests/x25519.rs +++ b/ed25519-dalek/tests/x25519.rs @@ -1,6 +1,6 @@ //! Tests for converting Ed25519 keys into X25519 (Montgomery form) keys. -use curve25519_dalek::scalar::{clamp_integer, Scalar}; +use curve25519_dalek::scalar::{Scalar, clamp_integer}; use ed25519_dalek::SigningKey; use hex_literal::hex; use sha2::{Digest, Sha512}; diff --git a/x25519-dalek/Cargo.toml b/x25519-dalek/Cargo.toml index 7f38a86..7fc77ae 100644 --- a/x25519-dalek/Cargo.toml +++ b/x25519-dalek/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "x25519-dalek" -edition = "2021" +edition = "2024" # Before changing this: # - update version in README.md # - update html_root_url # - update CHANGELOG # - if any changes were made to README.md, mirror them in src/lib.rs docs -version = "2.0.1" +version = "3.0.0-pre" authors = [ "Isis Lovecruft ", "DebugSteven ", @@ -25,7 +25,7 @@ exclude = [ ".travis.yml", "CONTRIBUTING.md", ] -rust-version = "1.60" +rust-version = "1.85" [badges] travis-ci = { repository = "dalek-cryptography/x25519-dalek", branch = "master"} @@ -38,7 +38,7 @@ rustdoc-args = [ features = ["getrandom", "reusable_secrets", "serde", "static_secrets"] [dependencies] -curve25519-dalek = { version = "4", path = "../curve25519-dalek", default-features = false } +curve25519-dalek = { version = "=5.0.0-pre", path = "../curve25519-dalek", default-features = false } rand_core = { version = "0.6", default-features = false } serde = { version = "1", default-features = false, optional = true, features = ["derive"] } zeroize = { version = "1", default-features = false, optional = true } diff --git a/x25519-dalek/benches/x25519.rs b/x25519-dalek/benches/x25519.rs index 77c832d..e779a97 100644 --- a/x25519-dalek/benches/x25519.rs +++ b/x25519-dalek/benches/x25519.rs @@ -11,7 +11,7 @@ //! Benchmark the Diffie-Hellman operation. -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; use rand_core::OsRng;