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
1 files changed,
3 insertions(+),
3 deletions(-)
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 {