diff --git a/src/bls12_381/fp.rs b/src/bls12_381/fp.rs index 0bb68c19..675cb570 100644 --- a/src/bls12_381/fp.rs +++ b/src/bls12_381/fp.rs @@ -10,6 +10,9 @@ use std::io::Write; use std::ops::Deref; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; +#[cfg(feature = "derive_serde")] +use serde::{Deserialize, Serialize}; + use crate::util::{adc, mac, sbb}; use crate::{ impl_add_binop_specify_output, impl_binops_additive, impl_binops_additive_specify_output, @@ -20,6 +23,7 @@ use crate::{ // integers in little-endian order. `Fp` values are always in // Montgomery form; i.e., Scalar(a) = aR mod p, with R = 2^384. #[derive(Copy, Clone)] +#[cfg_attr(feature = "derive_serde", derive(Serialize, Deserialize))] pub struct Fp(pub(crate) [u64; 6]); impl Ord for Fp { @@ -872,7 +876,7 @@ impl crate::serde::SerdeObject for Fp { reader.read_exact(&mut buf).unwrap(); u64::from_le_bytes(buf) }); - Self( inner ) + Self(inner) } fn read_raw(reader: &mut R) -> std::io::Result { let mut inner = [0u64; 6]; diff --git a/src/bls12_381/fp2.rs b/src/bls12_381/fp2.rs index 1de9c7c1..04efb875 100644 --- a/src/bls12_381/fp2.rs +++ b/src/bls12_381/fp2.rs @@ -8,6 +8,9 @@ use std::convert::TryInto; use std::ops::{BitAnd, Deref}; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; +#[cfg(feature = "derive_serde")] +use serde::{Deserialize, Serialize}; + use crate::bls12_381::fp::Fp; use crate::{ impl_add_binop_specify_output, impl_binops_additive, impl_binops_additive_specify_output, @@ -15,6 +18,7 @@ use crate::{ }; #[derive(Copy, Clone)] +#[cfg_attr(feature = "derive_serde", derive(Serialize, Deserialize))] pub struct Fp2 { pub c0: Fp, pub c1: Fp, diff --git a/src/bls12_381/g1.rs b/src/bls12_381/g1.rs index 43ad0c5e..08d986d2 100644 --- a/src/bls12_381/g1.rs +++ b/src/bls12_381/g1.rs @@ -12,9 +12,9 @@ use ff::PrimeField; use ff::WithSmallOrderMulGroup; use group::cofactor::CofactorGroup; -#[cfg(feature = "alloc")] -use group::WnafGroup; use pasta_curves::arithmetic::{Coordinates, CurveAffine, CurveExt}; +#[cfg(feature = "derive_serde")] +use serde::{Deserialize, Serialize}; use crate::bls12_381::fp::Fp; use crate::bls12_381::Scalar; diff --git a/src/bls12_381/g2.rs b/src/bls12_381/g2.rs index 170b550b..200867e5 100644 --- a/src/bls12_381/g2.rs +++ b/src/bls12_381/g2.rs @@ -7,9 +7,9 @@ use group::{prime::PrimeCurveAffine, Curve, Group, GroupEncoding}; use rand_core::RngCore; use subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption}; -#[cfg(feature = "alloc")] -use group::WnafGroup; use pasta_curves::arithmetic::{Coordinates, CurveAffine, CurveExt}; +#[cfg(feature = "derive_serde")] +use serde::{Deserialize, Serialize}; use ff::WithSmallOrderMulGroup; use ff::{Field, PrimeField}; diff --git a/src/jubjub/curve.rs b/src/jubjub/curve.rs index 479d4912..078d5164 100644 --- a/src/jubjub/curve.rs +++ b/src/jubjub/curve.rs @@ -169,12 +169,12 @@ impl PartialEq for ExtendedPoint { } impl Sum for ExtendedPoint - where - T: Borrow, +where + T: Borrow, { fn sum(iter: I) -> Self - where - I: Iterator, + where + I: Iterator, { iter.fold(Self::identity(), |acc, item| acc + item.borrow()) } @@ -811,7 +811,7 @@ impl ExtendedPoint { z: vv_minus_uu, t: zz2 - vv_minus_uu, } - .into_extended() + .into_extended() } #[inline] @@ -912,7 +912,7 @@ impl<'a, 'b> Add<&'b ExtendedNielsPoint> for &'a ExtendedPoint { z: d + c, t: d - c, } - .into_extended() + .into_extended() } } @@ -932,7 +932,7 @@ impl<'a, 'b> Sub<&'b ExtendedNielsPoint> for &'a ExtendedPoint { z: d - c, t: d + c, } - .into_extended() + .into_extended() } } @@ -960,7 +960,7 @@ impl<'a, 'b> Add<&'b AffineNielsPoint> for &'a ExtendedPoint { z: d + c, t: d - c, } - .into_extended() + .into_extended() } } @@ -980,7 +980,7 @@ impl<'a, 'b> Sub<&'b AffineNielsPoint> for &'a ExtendedPoint { z: d - c, t: d + c, } - .into_extended() + .into_extended() } } @@ -1176,12 +1176,12 @@ impl SubgroupPoint { } impl Sum for SubgroupPoint - where - T: Borrow, +where + T: Borrow, { fn sum(iter: I) -> Self - where - I: Iterator, + where + I: Iterator, { iter.fold(Self::identity(), |acc, item| acc + item.borrow()) } @@ -1267,11 +1267,11 @@ impl Group for ExtendedPoint { let v2 = v.square(); let p = ((v2 - Fq::one()) * ((Fq::one() + EDWARDS_D * v2).invert().unwrap_or(Fq::zero()))) - .sqrt() - .map(|u| AffinePoint { - u: if flip_sign { -u } else { u }, - v, - }); + .sqrt() + .map(|u| AffinePoint { + u: if flip_sign { -u } else { u }, + v, + }); if p.is_some().into() { let p = p.unwrap().to_curve(); @@ -1566,7 +1566,7 @@ fn test_assoc() { 0x3793_de18_2f9f_b1d2, ]), }) - .mul_by_cofactor(); + .mul_by_cofactor(); assert!(p.is_on_curve_vartime()); assert_eq!( @@ -1591,7 +1591,7 @@ fn test_batch_normalize() { 0x3793_de18_2f9f_b1d2, ]), }) - .mul_by_cofactor(); + .mul_by_cofactor(); let mut v = vec![]; for _ in 0..10 { @@ -1837,7 +1837,7 @@ fn test_mul_consistency() { 0x3793_de18_2f9f_b1d2, ]), }) - .mul_by_cofactor(); + .mul_by_cofactor(); assert_eq!(p * c, (p * a) * b); // Test Mul implemented on ExtendedNielsPoint @@ -1981,4 +1981,4 @@ fn test_zip_216() { assert_eq!(b, &encoded); } } -} \ No newline at end of file +} diff --git a/src/jubjub/fr.rs b/src/jubjub/fr.rs index 78abee99..05ecbdb6 100644 --- a/src/jubjub/fr.rs +++ b/src/jubjub/fr.rs @@ -176,24 +176,24 @@ impl_binops_additive!(Fr, Fr); impl_binops_multiplicative!(Fr, Fr); impl core::iter::Sum for Fr - where - T: core::borrow::Borrow, +where + T: core::borrow::Borrow, { fn sum(iter: I) -> Self - where - I: Iterator, + where + I: Iterator, { iter.fold(Self::zero(), |acc, item| acc + item.borrow()) } } impl core::iter::Product for Fr - where - T: core::borrow::Borrow, +where + T: core::borrow::Borrow, { fn product(iter: I) -> Self - where - I: Iterator, + where + I: Iterator, { iter.fold(Self::one(), |acc, item| acc * item.borrow()) } @@ -882,7 +882,7 @@ fn test_from_bytes() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]) - .unwrap(), + .unwrap(), Fr::zero() ); @@ -891,7 +891,7 @@ fn test_from_bytes() { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]) - .unwrap(), + .unwrap(), Fr::one() ); @@ -900,7 +900,7 @@ fn test_from_bytes() { 217, 7, 150, 185, 179, 11, 248, 37, 80, 231, 182, 102, 47, 214, 21, 243, 244, 20, 136, 235, 238, 20, 37, 147, 198, 85, 145, 71, 111, 252, 166, 9 ]) - .unwrap(), + .unwrap(), R2 ); @@ -910,7 +910,7 @@ fn test_from_bytes() { 182, 44, 247, 214, 94, 14, 151, 208, 130, 16, 200, 204, 147, 32, 104, 166, 0, 59, 52, 1, 1, 59, 103, 6, 169, 175, 51, 101, 234, 180, 125, 14 ]) - .is_some() + .is_some() )); // modulus is invalid @@ -919,7 +919,7 @@ fn test_from_bytes() { 183, 44, 247, 214, 94, 14, 151, 208, 130, 16, 200, 204, 147, 32, 104, 166, 0, 59, 52, 1, 1, 59, 103, 6, 169, 175, 51, 101, 234, 180, 125, 14 ]) - .is_none() + .is_none() )); // Anything larger than the modulus is invalid @@ -928,7 +928,7 @@ fn test_from_bytes() { 184, 44, 247, 214, 94, 14, 151, 208, 130, 16, 200, 204, 147, 32, 104, 166, 0, 59, 52, 1, 1, 59, 103, 6, 169, 175, 51, 101, 234, 180, 125, 14 ]) - .is_none() + .is_none() )); assert!(bool::from( @@ -936,7 +936,7 @@ fn test_from_bytes() { 183, 44, 247, 214, 94, 14, 151, 208, 130, 16, 200, 204, 147, 32, 104, 166, 0, 59, 52, 1, 1, 59, 104, 6, 169, 175, 51, 101, 234, 180, 125, 14 ]) - .is_none() + .is_none() )); assert!(bool::from( @@ -944,7 +944,7 @@ fn test_from_bytes() { 183, 44, 247, 214, 94, 14, 151, 208, 130, 16, 200, 204, 147, 32, 104, 166, 0, 59, 52, 1, 1, 59, 103, 6, 169, 175, 51, 101, 234, 180, 125, 15 ]) - .is_none() + .is_none() )); } @@ -1229,4 +1229,4 @@ fn test_from_raw() { assert_eq!(Fr::from_raw(MODULUS.0), Fr::zero()); assert_eq!(Fr::from_raw([1, 0, 0, 0]), R); -} \ No newline at end of file +} diff --git a/src/jubjub/mod.rs b/src/jubjub/mod.rs index 4b99d7ce..fdb6a8c7 100644 --- a/src/jubjub/mod.rs +++ b/src/jubjub/mod.rs @@ -2,4 +2,4 @@ mod curve; mod fr; pub use curve::*; -pub use fr::*; \ No newline at end of file +pub use fr::*;