Skip to content

Commit b73513a

Browse files
committed
Migrate to group::CurveAffine
1 parent 7958923 commit b73513a

8 files changed

Lines changed: 18 additions & 20 deletions

File tree

Cargo.lock

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,5 @@ harness = false
6060
maintenance = { status = "actively-developed" }
6161

6262
[patch.crates-io]
63-
bls12_381 = { git = "https://github.com/zkcrypto/bls12_381.git", rev = "d5df9da6b20619bf77cc432447c02f8f6a6a1fb3" }
63+
bls12_381 = { git = "https://github.com/zkcrypto/bls12_381.git", rev = "b859693951a28bb2e44515adbf54395aa8ec7a9a" }
64+
group = { git = "https://github.com/zkcrypto/group.git", rev = "21104854da7f316c470213ab4a2ace239d24dd28" }

groth16/src/generator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::ops::{AddAssign, MulAssign};
33
use std::sync::Arc;
44

55
use ff::{Field, PrimeField};
6-
use group::{prime::PrimeCurveAffine, Curve, Group, Wnaf, WnafGroup};
6+
use group::{Curve, CurveAffine, Group, Wnaf, WnafGroup};
77
use pairing::Engine;
88

99
use super::{Parameters, VerifyingKey};

groth16/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//!
33
//! [Groth16]: https://eprint.iacr.org/2016/260
44
5-
use group::{prime::PrimeCurveAffine, GroupEncoding, UncompressedEncoding};
5+
use group::{CurveAffine, GroupEncoding, UncompressedEncoding};
66
use pairing::{Engine, MultiMillerLoop};
77

88
use bellman::{multiexp::SourceBuilder, SynthesisError};

groth16/src/prover.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::ops::{AddAssign, MulAssign};
33
use std::sync::Arc;
44

55
use ff::{Field, PrimeField, PrimeFieldBits};
6-
use group::{prime::PrimeCurveAffine, Curve};
6+
use group::{Curve, CurveAffine};
77
use pairing::Engine;
88

99
use super::{ParameterSource, Proof};

groth16/src/tests/dummy_engine.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use ff::{Field, FieldBits, PrimeField, PrimeFieldBits};
22
use group::{
3-
prime::{PrimeCurve, PrimeCurveAffine, PrimeGroup},
4-
Curve, Group, GroupEncoding, UncompressedEncoding, WnafGroup,
3+
prime::{PrimeCurve, PrimeGroup},
4+
Curve, CurveAffine, Group, GroupEncoding, UncompressedEncoding, WnafGroup,
55
};
66
use pairing::{Engine, MillerLoopResult, MultiMillerLoop, PairingCurveAffine};
77

@@ -404,7 +404,7 @@ impl Group for Fr {
404404
impl PrimeGroup for Fr {}
405405

406406
impl Curve for Fr {
407-
type AffineRepr = Fr;
407+
type Affine = Fr;
408408

409409
fn to_affine(&self) -> Fr {
410410
*self
@@ -417,9 +417,7 @@ impl WnafGroup for Fr {
417417
}
418418
}
419419

420-
impl PrimeCurve for Fr {
421-
type Affine = Fr;
422-
}
420+
impl PrimeCurve for Fr {}
423421

424422
#[derive(Copy, Clone, Default)]
425423
pub struct FakePoint;
@@ -436,7 +434,7 @@ impl AsRef<[u8]> for FakePoint {
436434
}
437435
}
438436

439-
impl PrimeCurveAffine for Fr {
437+
impl CurveAffine for Fr {
440438
type Curve = Fr;
441439
type Scalar = Fr;
442440

groth16/src/verifier.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use group::{prime::PrimeCurveAffine, Curve};
1+
use group::{Curve, CurveAffine};
22
use pairing::{MillerLoopResult, MultiMillerLoop};
33
use std::ops::{AddAssign, Neg};
44

src/multiexp.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ pub trait Source<G: PrimeCurveAffine> {
3232

3333
pub trait AddAssignFromSource: PrimeCurve {
3434
/// Parses the element from the source. Fails if the point is at infinity.
35-
fn add_assign_from_source<S: Source<<Self as PrimeCurve>::Affine>>(
35+
fn add_assign_from_source<S: Source<Self::Affine>>(
3636
&mut self,
3737
source: &mut S,
3838
) -> Result<(), SynthesisError> {
39-
AddAssign::<&<Self as PrimeCurve>::Affine>::add_assign(self, source.next()?);
39+
AddAssign::<&Self::Affine>::add_assign(self, source.next()?);
4040
Ok(())
4141
}
4242
}
@@ -218,7 +218,7 @@ where
218218
D: Send + Sync + 'static + Clone + AsRef<Q>,
219219
G: PrimeCurve,
220220
G::Scalar: PrimeFieldBits,
221-
S: SourceBuilder<<G as PrimeCurve>::Affine>,
221+
S: SourceBuilder<G::Affine>,
222222
{
223223
// Perform this region of the multiexp
224224
let this = move |bases: S,
@@ -313,7 +313,7 @@ where
313313
D: Send + Sync + 'static + Clone + AsRef<Q>,
314314
G: PrimeCurve,
315315
G::Scalar: PrimeFieldBits,
316-
S: SourceBuilder<<G as PrimeCurve>::Affine>,
316+
S: SourceBuilder<G::Affine>,
317317
{
318318
let c = if exponents.len() < 32 {
319319
3u32
@@ -335,7 +335,7 @@ where
335335
#[test]
336336
fn test_with_bls12() {
337337
fn naive_multiexp<G: PrimeCurve>(
338-
bases: Arc<Vec<<G as PrimeCurve>::Affine>>,
338+
bases: Arc<Vec<G::Affine>>,
339339
exponents: Arc<Vec<G::Scalar>>,
340340
) -> G {
341341
assert_eq!(bases.len(), exponents.len());

0 commit comments

Comments
 (0)