From d0dc200f22f54cdf2eef9d2ff7d3d9f3c661f3be Mon Sep 17 00:00:00 2001 From: Marcin Date: Tue, 11 Jan 2022 18:28:17 +0100 Subject: [PATCH] Sqrt fq2 bls12 381 regression (#89) Co-authored-by: Pratyush Mishra --- bls12_381/src/fields/tests.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bls12_381/src/fields/tests.rs b/bls12_381/src/fields/tests.rs index d242915..7b667af 100644 --- a/bls12_381/src/fields/tests.rs +++ b/bls12_381/src/fields/tests.rs @@ -1117,6 +1117,19 @@ fn test_fq_repr_add_nocarry() { assert!(x.is_zero()); } +#[test] +fn test_fq2_sqrt() { + // 1 has a sqrt in the base field + let fq2_sqrt = Fq2::new(Fq::one(), Fq::zero()).sqrt().unwrap(); + assert_eq!(fq2_sqrt.c0, Fq::one()); + assert_eq!(fq2_sqrt.c1, Fq::zero()); + + // -1 has no sqrt in the base field, but should be valid in Fq2 + let fq2_sqrt = Fq2::new(-Fq::one(), Fq::zero()).sqrt().unwrap(); + assert_eq!(fq2_sqrt.c0, Fq::zero()); + assert_eq!(fq2_sqrt.c1, Fq::one()); +} + #[test] fn test_fq_num_bits() { assert_eq!(FqParameters::MODULUS_BITS, 381);