From aa0cc06e5e6a06228d0e83c9ca45e1abe7c1614a Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Sat, 25 Nov 2017 20:57:10 -0700 Subject: [PATCH] Scalar field should be guaranteed to be SqrtField. --- src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 4b81613..29c82be 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -37,7 +37,7 @@ use std::io::{self, Read, Write}; pub trait Engine: Sized + 'static + Clone { /// This is the scalar field of the G1/G2 groups. - type Fr: PrimeField; + type Fr: PrimeField + SqrtField; /// The projective representation of an element in G1. type G1: CurveProjective + From; @@ -99,7 +99,7 @@ pub trait CurveProjective: PartialEq + 'static { type Engine: Engine; - type Scalar: PrimeField; + type Scalar: PrimeField + SqrtField; type Base: SqrtField; type Affine: CurveAffine; @@ -168,7 +168,7 @@ pub trait CurveAffine: Copy + 'static { type Engine: Engine; - type Scalar: PrimeField; + type Scalar: PrimeField + SqrtField; type Base: SqrtField; type Projective: CurveProjective; type Prepared: Clone + Send + Sync + 'static;