diff --git a/Cargo.lock b/Cargo.lock index 01492d7e..d2f482f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -290,8 +290,7 @@ dependencies = [ [[package]] name = "group" version = "0.14.0-pre.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff6a0b2dd4b981b1ae9e3e6830ab146771f3660d31d57bafd9018805a91b0f1" +source = "git+https://github.com/zkcrypto/group.git?rev=21104854da7f316c470213ab4a2ace239d24dd28#21104854da7f316c470213ab4a2ace239d24dd28" dependencies = [ "ff", "rand_core", diff --git a/Cargo.toml b/Cargo.toml index f6bae12a..78c1c8bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,3 +63,6 @@ required-features = ["groups"] name = "hash_to_curve" harness = false required-features = ["experimental"] + +[patch.crates-io] +group = { git = "https://github.com/zkcrypto/group.git", rev = "21104854da7f316c470213ab4a2ace239d24dd28" } diff --git a/src/g1.rs b/src/g1.rs index 32381069..bbc8379d 100644 --- a/src/g1.rs +++ b/src/g1.rs @@ -5,8 +5,8 @@ use core::fmt; use core::iter::Sum; use core::ops::{Add, AddAssign, Mul, MulAssign, Neg, Sub, SubAssign}; use group::{ - prime::{PrimeCurve, PrimeCurveAffine, PrimeGroup}, - Curve, Group, GroupEncoding, UncompressedEncoding, + prime::{PrimeCurve, PrimeGroup}, + Curve, CurveAffine, Group, GroupEncoding, UncompressedEncoding, }; use rand_core::TryRngCore; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; @@ -1007,22 +1007,20 @@ impl WnafGroup for G1Projective { impl PrimeGroup for G1Projective {} impl Curve for G1Projective { - type AffineRepr = G1Affine; + type Affine = G1Affine; - fn batch_normalize(p: &[Self], q: &mut [Self::AffineRepr]) { + fn batch_normalize(p: &[Self], q: &mut [Self::Affine]) { Self::batch_normalize(p, q); } - fn to_affine(&self) -> Self::AffineRepr { + fn to_affine(&self) -> Self::Affine { self.into() } } -impl PrimeCurve for G1Projective { - type Affine = G1Affine; -} +impl PrimeCurve for G1Projective {} -impl PrimeCurveAffine for G1Affine { +impl CurveAffine for G1Affine { type Scalar = Scalar; type Curve = G1Projective; diff --git a/src/g2.rs b/src/g2.rs index 9a2b4b45..dceb40c9 100644 --- a/src/g2.rs +++ b/src/g2.rs @@ -5,8 +5,8 @@ use core::fmt; use core::iter::Sum; use core::ops::{Add, AddAssign, Mul, MulAssign, Neg, Sub, SubAssign}; use group::{ - prime::{PrimeCurve, PrimeCurveAffine, PrimeGroup}, - Curve, Group, GroupEncoding, UncompressedEncoding, + prime::{PrimeCurve, PrimeGroup}, + Curve, CurveAffine, Group, GroupEncoding, UncompressedEncoding, }; use rand_core::TryRngCore; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; @@ -1151,22 +1151,20 @@ impl WnafGroup for G2Projective { impl PrimeGroup for G2Projective {} impl Curve for G2Projective { - type AffineRepr = G2Affine; + type Affine = G2Affine; - fn batch_normalize(p: &[Self], q: &mut [Self::AffineRepr]) { + fn batch_normalize(p: &[Self], q: &mut [Self::Affine]) { Self::batch_normalize(p, q); } - fn to_affine(&self) -> Self::AffineRepr { + fn to_affine(&self) -> Self::Affine { self.into() } } -impl PrimeCurve for G2Projective { - type Affine = G2Affine; -} +impl PrimeCurve for G2Projective {} -impl PrimeCurveAffine for G2Affine { +impl CurveAffine for G2Affine { type Scalar = Scalar; type Curve = G2Projective;