From 60b36517d2a0ce17420c66dc0f2106ddbbb321b8 Mon Sep 17 00:00:00 2001 From: CjS77 Date: Wed, 14 Dec 2022 15:02:04 +0000 Subject: [PATCH 1/2] chore: update toolchain A recent serde upgrade broke this crate, so navigating dependency hell to make everything play nce again. In summary: - change toolchain to stable - update workflows Some workflows need to run on nightly, but update to stable where possible _ re-introduce --all-features to test workflow, since simd has since been updated - add asref and asmut to NonDebug to make clippy shut up --- .github/workflows/benchmark.yml | 2 +- .github/workflows/clippy-check.yml | 4 ++-- .github/workflows/test.yml | 10 +++------- Cargo.toml | 3 ++- rust-toolchain.toml | 2 +- rustfmt.toml | 2 -- src/inner_product_round.rs | 5 +++-- src/protocols/curve_point_protocol.rs | 2 +- src/utils/non_debug.rs | 4 ++-- 9 files changed, 15 insertions(+), 19 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index aef19a5..c3ec635 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -4,7 +4,7 @@ on: push: branches: - main - - mb-* + - bm-* permissions: contents: write diff --git a/.github/workflows/clippy-check.yml b/.github/workflows/clippy-check.yml index db95b1b..31feac7 100644 --- a/.github/workflows/clippy-check.yml +++ b/.github/workflows/clippy-check.yml @@ -1,4 +1,4 @@ -on: [push, pull_request] +on: [pull_request] name: Clippy jobs: clippy_check: @@ -8,7 +8,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: components: clippy, rustfmt - toolchain: nightly-2022-01-17 + toolchain: nightly override: true - uses: actions-rs/cargo@v1 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 057c728..07ba9cc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: matrix: rust: - stable - - nightly-2022-01-17 + - nightly-2022-12-10 steps: - name: checkout uses: actions/checkout@v2 @@ -34,17 +34,13 @@ jobs: uses: actions-rs/cargo@v1 with: command: test - # TODO: re-add all features once https://github.com/rust-lang/packed_simd/pull/341 is used by dalek - # args: --all-features - args: --features u64_backend + args: --all-features - name: test/release all features if: ${{ matrix.rust != 'stable' }} uses: actions-rs/cargo@v1 with: command: test - # TODO: re-add all features once https://github.com/rust-lang/packed_simd/pull/341 is used by dalek - # args: --release --all-features - args: --features u64_backend + args: --release --all-features - name: docs build uses: actions-rs/cargo@v1 with: diff --git a/Cargo.toml b/Cargo.toml index 0959fcf..b2fecd0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,8 @@ digest = { version = "0.9.0", default-features = false } lazy_static = "1.4.0" merlin = { version = "3", default-features = false } rand = "0.7" -serde = "1.0.89" +# Note: toolchain must be at v1.60+ to support serde v1.0.150+ +serde = "1.0.150" sha3 = { version = "0.9.1", default-features = false } thiserror = { version = "1" } zeroize = "1" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 69cf24f..292fe49 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2022-01-17" +channel = "stable" diff --git a/rustfmt.toml b/rustfmt.toml index 7e6a968..ed803f8 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -13,8 +13,6 @@ normalize_comments = true reorder_imports = true reorder_modules = true reorder_impl_items = true -report_todo = "Never" -report_fixme = "Never" space_after_colon = true space_before_colon = false struct_lit_single_line = true diff --git a/src/inner_product_round.rs b/src/inner_product_round.rs index 2e1964b..70f71cd 100644 --- a/src/inner_product_round.rs +++ b/src/inner_product_round.rs @@ -154,7 +154,8 @@ where self.a1 = Some(a1.clone()); self.b = Some(b.clone()); - let e = transcripts::transcript_points_a1_b_challenge_e(*self.transcript, &a1.compress(), &b.compress())?; + let e = + transcripts::transcript_points_a1_b_challenge_e(&mut self.transcript, &a1.compress(), &b.compress())?; self.r1 = Some(r + self.ai[0] * e); self.s1 = Some(s + self.bi[0] * e); @@ -237,7 +238,7 @@ where self.ri.push(P::vartime_multiscalar_mul(ri_scalars, ri_points)); let e = transcripts::transcript_points_l_r_challenge_e( - *self.transcript, + &mut self.transcript, &self.li[self.li.len() - 1].compress(), &self.ri[self.ri.len() - 1].compress(), )?; diff --git a/src/protocols/curve_point_protocol.rs b/src/protocols/curve_point_protocol.rs index 662b76c..11866ac 100644 --- a/src/protocols/curve_point_protocol.rs +++ b/src/protocols/curve_point_protocol.rs @@ -49,7 +49,7 @@ pub trait CurvePointProtocol: // instead of below let mut buffer = [0u8; 64]; let size = min(output.len(), 64); - (&mut buffer[0..size]).copy_from_slice(&output.as_slice()[0..size]); + (buffer[0..size]).copy_from_slice(&output.as_slice()[0..size]); Self::from_uniform_bytes(&buffer) } diff --git a/src/utils/non_debug.rs b/src/utils/non_debug.rs index 11fc069..d2e5d3a 100644 --- a/src/utils/non_debug.rs +++ b/src/utils/non_debug.rs @@ -5,10 +5,10 @@ use std::fmt; -use derive_more::{Deref, DerefMut, From}; +use derive_more::{AsMut, AsRef, Deref, DerefMut, From}; /// A struct to add 'Debug' functionality to other struct members that do not implement 'Debug' -#[derive(Copy, Clone, From, Deref, DerefMut)] +#[derive(Copy, Clone, From, Deref, DerefMut, AsRef, AsMut)] pub struct NonDebug { inner: T, } From 9f201bba73466478037e0b73201bb46b5887122e Mon Sep 17 00:00:00 2001 From: CjS77 Date: Wed, 14 Dec 2022 17:13:22 +0000 Subject: [PATCH 2/2] disable-benchmark --- .github/workflows/{benchmark.yml => benchmark.yml.off} | 1 + 1 file changed, 1 insertion(+) rename .github/workflows/{benchmark.yml => benchmark.yml.off} (86%) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml.off similarity index 86% rename from .github/workflows/benchmark.yml rename to .github/workflows/benchmark.yml.off index c3ec635..443cf9c 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml.off @@ -1,3 +1,4 @@ +# Disabling this for now, since it always fails, and not sure it's compatible with criterion name: Benchmark on: pull_request: