arnaucube
arnaucube/ark-r1cs-stdPublic Self-hosted repository
Montgomery cannot use TE affine as intermediate representations (#103)

* debug

* test

* use mont

* reduce the delta

Co-authored-by: onewayfunc <onewayfunc@gmail.com>
Weikeng Chen w.k@berkeley.edu
Sat, 03 Sep 2022 21:22:22 -0700
commit

f2e53be88e886dd4c6188bf4fe847f57276a9216

parent

2416780e0f514e0f3610ef145d5ace5fa20cb43e

1 files changed, 3 insertions(+), 3 deletions(-)

jump to
M src/groups/curves/twisted_edwards/mod.rs → src/groups/curves/twisted_edwards/mod.rs

@@ -38,7 +38,7 @@ }

mod montgomery_affine_impl { use super::*; - use ark_ec::twisted_edwards::Affine as GroupAffine; + use ark_ec::twisted_edwards::MontgomeryAffine as GroupAffine; use ark_ff::Field; use core::ops::Add;

@@ -83,8 +83,8 @@ #[tracing::instrument(target = "r1cs")]

pub fn from_edwards_to_coords( p: &TEAffine<P>, ) -> Result<(P::BaseField, P::BaseField), SynthesisError> { - let montgomery_point: GroupAffine<P> = if p.y == P::BaseField::one() { - GroupAffine::identity() + let montgomery_point: GroupAffine<P::MontCurveConfig> = if p.y == P::BaseField::one() { + return Err(SynthesisError::UnexpectedIdentity); } else if p.x == P::BaseField::zero() { GroupAffine::new(P::BaseField::zero(), P::BaseField::zero()) } else {