mirror of
https://github.com/arnaucube/Nova.git
synced 2026-01-09 07:31:28 +01:00
use pasta_msm crate for MSM (#75)
* use pasta_msm crate for MSM * add repr-c to pasta_curves * add +stable * update pasta-msm version
This commit is contained in:
2
.github/workflows/rust.yml
vendored
2
.github/workflows/rust.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
- name: Build
|
||||
run: cargo build --verbose
|
||||
- name: Run tests
|
||||
run: cargo test --release --verbose
|
||||
run: cargo +stable test --release --verbose
|
||||
- name: Check Rustfmt Code Style
|
||||
run: cargo fmt --all -- --check
|
||||
- name: Check clippy warnings
|
||||
|
||||
@@ -22,7 +22,8 @@ rand_core = { version = "0.5", default-features = false }
|
||||
rand_chacha = "0.3"
|
||||
itertools = "0.9.0"
|
||||
subtle = "2.4"
|
||||
pasta_curves = "0.3.1"
|
||||
pasta_curves = { version = "^0.3.1", features = ["repr-c"] }
|
||||
pasta-msm = "0.1.1"
|
||||
neptune = { version = "6.1", default-features = false }
|
||||
generic-array = "0.14.4"
|
||||
bellperson-nonnative = { version = "0.3.0", default-features = false, features = ["wasm"] }
|
||||
|
||||
17
src/pasta.rs
17
src/pasta.rs
@@ -3,7 +3,6 @@ use crate::{
|
||||
poseidon::PoseidonRO,
|
||||
traits::{ChallengeTrait, CompressedGroup, Group},
|
||||
};
|
||||
use core::ops::Mul;
|
||||
use digest::{ExtendableOutput, Input};
|
||||
use ff::Field;
|
||||
use merlin::Transcript;
|
||||
@@ -11,7 +10,7 @@ use num_bigint::BigInt;
|
||||
use num_traits::Num;
|
||||
use pasta_curves::{
|
||||
self,
|
||||
arithmetic::{CurveAffine, CurveExt, Group as Grp},
|
||||
arithmetic::{CurveAffine, CurveExt},
|
||||
group::{Curve, GroupEncoding},
|
||||
pallas, vesta, Ep, Eq,
|
||||
};
|
||||
@@ -46,12 +45,7 @@ impl Group for pallas::Point {
|
||||
scalars: &[Self::Scalar],
|
||||
bases: &[Self::PreprocessedGroupElement],
|
||||
) -> Self {
|
||||
// Unoptimized.
|
||||
scalars
|
||||
.iter()
|
||||
.zip(bases)
|
||||
.map(|(scalar, base)| base.mul(scalar))
|
||||
.fold(Ep::group_zero(), |acc, x| acc + x)
|
||||
pasta_msm::pallas(bases, scalars)
|
||||
}
|
||||
|
||||
fn compress(&self) -> Self::CompressedGroupElement {
|
||||
@@ -136,12 +130,7 @@ impl Group for vesta::Point {
|
||||
scalars: &[Self::Scalar],
|
||||
bases: &[Self::PreprocessedGroupElement],
|
||||
) -> Self {
|
||||
// Unoptimized.
|
||||
scalars
|
||||
.iter()
|
||||
.zip(bases)
|
||||
.map(|(scalar, base)| base.mul(scalar))
|
||||
.fold(Eq::group_zero(), |acc, x| acc + x)
|
||||
pasta_msm::vesta(bases, scalars)
|
||||
}
|
||||
|
||||
fn compress(&self) -> Self::CompressedGroupElement {
|
||||
|
||||
Reference in New Issue
Block a user