diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 641caca9..3f15d4fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: rust: - - 1.81.0 # MSRV + - 1.83.0 # MSRV - stable target: - wasm32-unknown-unknown @@ -59,7 +59,7 @@ jobs: matrix: include: - target: x86_64-unknown-linux-gnu - rust: 1.81.0 # MSRV + rust: 1.83.0 # MSRV steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@v1 @@ -77,7 +77,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.81.0 # MSRV + toolchain: 1.83.0 # MSRV components: clippy override: true profile: minimal diff --git a/CHANGELOG.md b/CHANGELOG.md index e6ac0145..6545b692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,14 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.3.0] - in development - Switch the protocol framework to `manul`. ([#156]) - +- Bumped MSRV to 1.83 ([#176]) [#156]: https://github.com/entropyxyz/synedrion/pull/156 ## [0.2.0] - 2024-11-17 -- Signature and elliptic curve dependencies reset back to stable versions. (#[154]) +- Signature and elliptic curve dependencies reset back to stable versions. ([#154]) [#154]: https://github.com/entropyxyz/synedrion/pull/154 diff --git a/Cargo.lock b/Cargo.lock index cf169623..c951af05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -358,13 +358,13 @@ dependencies = [ [[package]] name = "crypto-bigint" -version = "0.6.0-rc.6" +version = "0.6.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d748d1f5b807ee6d0df5a548d0130417295c3aaed1dcbbb3d6a2e7106e11fcca" +checksum = "e5b2d0aa9f9958eea3b6b6ecb18ee55408f0065a9ea96f777ecdb5fa55ebbcfc" dependencies = [ "num-traits", "rand_core", - "serdect 0.3.0-rc.0", + "serdect 0.3.0", "subtle", "zeroize", ] @@ -385,7 +385,7 @@ version = "0.6.0-pre.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9fad3f7645c77d3e0269f3e74a8dd25746de992b16bcecbb316059836e0b366" dependencies = [ - "crypto-bigint 0.6.0-rc.6", + "crypto-bigint 0.6.0-rc.8", "rand_core", ] @@ -1147,9 +1147,9 @@ dependencies = [ [[package]] name = "serdect" -version = "0.3.0-rc.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a504c8ee181e3e594d84052f983d60afe023f4d94d050900be18062bbbf7b58" +checksum = "f42f67da2385b51a5f9652db9c93d78aeaf7610bf5ec366080b6de810604af53" dependencies = [ "base16ct", "serde", @@ -1229,7 +1229,7 @@ dependencies = [ "bincode", "bip32", "criterion", - "crypto-bigint 0.6.0-rc.6", + "crypto-bigint 0.6.0-rc.8", "crypto-primes", "digest", "displaydoc", diff --git a/synedrion/Cargo.toml b/synedrion/Cargo.toml index a1386e8e..661fe791 100644 --- a/synedrion/Cargo.toml +++ b/synedrion/Cargo.toml @@ -3,7 +3,7 @@ name = "synedrion" authors = ['Entropy Cryptography '] version = "0.3.0-dev" edition = "2021" -rust-version = "1.81" +rust-version = "1.83" license = "AGPL-3.0-or-later" description = "Threshold signing library based on Canetti-Gennaro-Goldfeder-Makriyannis-Peled '21 scheme" repository = "https://github.com/entropyxyz/synedrion" @@ -26,7 +26,7 @@ tracing = { version = "0.1.41", default-features = false } # Note: `alloc` is needed for `crytpto-bigint`'s dependency `serdect` to be able # to serialize Uints in human-readable formats. -crypto-bigint = { version = "0.6.0-rc.6", default-features = false, features = [ +crypto-bigint = { version = "0.6.0-rc.8", default-features = false, features = [ "serde", "alloc", "rand_core", diff --git a/synedrion/src/paillier/keys.rs b/synedrion/src/paillier/keys.rs index 91027281..4fa16dca 100644 --- a/synedrion/src/paillier/keys.rs +++ b/synedrion/src/paillier/keys.rs @@ -421,16 +421,16 @@ mod tests { Token::Field("p"), Token::Str( concat![ - "cf4ee6be31dbfa5fe153ec138abb8a8d8271386e6e359dd18f0ef4b8f7301391", - "2f58867d5d8fb0f30b1d96f215100ff97097b3baac10c8cc3aac969e7df3ac8e" + "e3b7608d5c3161cca23711e75436575251f55e9c3b34412388f592f71c638c73", + "edf68a6af97aab03faff8c42357a8c50fb2110f1c12d8628debd5eefb0f676f3" ] .to_string(), ), Token::Field("q"), Token::Str( concat![ - "732bbb2b9a150d2797ab52dde9dd00f467b6608d5c3161cca23711e754365752", - "51f55e9c3b34412388f592f71c638c73edf68a6af97aab03faff8c42357a8cd0" + "17ea88a0e3187f0353c7c092f708369f5c6267e30c2a4c23a2eae9b524ffe0ed", + "227fc2a20e965b6f697f913fcc281e5bde33fc435391bd3650d5950d5407db92" ] .to_string(), ), diff --git a/synedrion/src/paillier/params.rs b/synedrion/src/paillier/params.rs index b72973ca..8eecbda7 100644 --- a/synedrion/src/paillier/params.rs +++ b/synedrion/src/paillier/params.rs @@ -1,9 +1,7 @@ -use core::ops::RemAssign; - use crypto_bigint::{ modular::Retrieve, subtle::{ConditionallyNegatable, ConditionallySelectable, ConstantTimeGreater, CtOption}, - Bounded, Encoding, Gcd, Integer, InvMod, Invert, Monty, NonZero, PowBoundedExp, RandomMod, + Bounded, Encoding, Gcd, Integer, InvMod, Invert, Monty, PowBoundedExp, RandomMod, }; use crypto_primes::RandomPrimeWithRng; use serde::{Deserialize, Serialize}; @@ -53,9 +51,7 @@ pub trait PaillierParams: core::fmt::Debug + PartialEq + Eq + Clone + Send + Syn + Encoding + Hashable + HasWide - // TODO: remove when https://github.com/RustCrypto/crypto-bigint/pull/709 is merged - + for<'a> RemAssign<&'a NonZero> - + InvMod + + InvMod + RandomMod + RandomPrimeWithRng + Serialize