|  |  | @ -559,37 +559,14 @@ where | 
			
		
	
		
			
				
					|  |  |  |   }
 | 
			
		
	
		
			
				
					|  |  |  | }
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #[cfg(test)]
 | 
			
		
	
		
			
				
					|  |  |  | #[allow(clippy::too_many_arguments)]
 | 
			
		
	
		
			
				
					|  |  |  | mod fp {
 | 
			
		
	
		
			
				
					|  |  |  |   use ff::PrimeField;
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   #[derive(PrimeField)]
 | 
			
		
	
		
			
				
					|  |  |  |   #[PrimeFieldModulus = "28948022309329048855892746252171976963363056481941560715954676764349967630337"]
 | 
			
		
	
		
			
				
					|  |  |  |   #[PrimeFieldGenerator = "5"]
 | 
			
		
	
		
			
				
					|  |  |  |   #[PrimeFieldReprEndianness = "little"]
 | 
			
		
	
		
			
				
					|  |  |  |   pub struct Fp([u64; 4]);
 | 
			
		
	
		
			
				
					|  |  |  | }
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #[cfg(test)]
 | 
			
		
	
		
			
				
					|  |  |  | #[allow(clippy::too_many_arguments)]
 | 
			
		
	
		
			
				
					|  |  |  | mod fq {
 | 
			
		
	
		
			
				
					|  |  |  |   use ff::PrimeField;
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   #[derive(PrimeField)]
 | 
			
		
	
		
			
				
					|  |  |  |   #[PrimeFieldModulus = "28948022309329048855892746252171976963363056481941647379679742748393362948097"]
 | 
			
		
	
		
			
				
					|  |  |  |   #[PrimeFieldGenerator = "5"]
 | 
			
		
	
		
			
				
					|  |  |  |   #[PrimeFieldReprEndianness = "little"]
 | 
			
		
	
		
			
				
					|  |  |  |   pub struct Fq([u64; 4]);
 | 
			
		
	
		
			
				
					|  |  |  | }
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | #[cfg(test)]
 | 
			
		
	
		
			
				
					|  |  |  | mod tests {
 | 
			
		
	
		
			
				
					|  |  |  |   use super::*;
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   #[test]
 | 
			
		
	
		
			
				
					|  |  |  |   fn test_ecc_ops() {
 | 
			
		
	
		
			
				
					|  |  |  |     use super::{fp::Fp, fq::Fq};
 | 
			
		
	
		
			
				
					|  |  |  |     type Fp = pasta_curves::pallas::Base;
 | 
			
		
	
		
			
				
					|  |  |  |     type Fq = pasta_curves::pallas::Scalar;
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     // perform some curve arithmetic
 | 
			
		
	
		
			
				
					|  |  |  |     let a = Point::<Fp, Fq>::random_vartime();
 | 
			
		
	
	
		
			
				
					|  |  | @ -601,35 +578,35 @@ mod tests { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     // perform the same computation by translating to pasta_curve types
 | 
			
		
	
		
			
				
					|  |  |  |     let a_pasta = EpAffine::from_xy(
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(a.x.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(a.y.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(a.x.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(a.y.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |     )
 | 
			
		
	
		
			
				
					|  |  |  |     .unwrap();
 | 
			
		
	
		
			
				
					|  |  |  |     let b_pasta = EpAffine::from_xy(
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(b.x.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(b.y.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(b.x.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(b.y.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |     )
 | 
			
		
	
		
			
				
					|  |  |  |     .unwrap();
 | 
			
		
	
		
			
				
					|  |  |  |     let c_pasta = (a_pasta + b_pasta).to_affine();
 | 
			
		
	
		
			
				
					|  |  |  |     let d_pasta = (a_pasta + a_pasta).to_affine();
 | 
			
		
	
		
			
				
					|  |  |  |     let e_pasta = a_pasta
 | 
			
		
	
		
			
				
					|  |  |  |       .mul(pasta_curves::Fq::from_repr(s.to_repr().0).unwrap())
 | 
			
		
	
		
			
				
					|  |  |  |       .mul(pasta_curves::Fq::from_repr(s.to_repr()).unwrap())
 | 
			
		
	
		
			
				
					|  |  |  |       .to_affine();
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     // transform c, d, and e into pasta_curve types
 | 
			
		
	
		
			
				
					|  |  |  |     let c_pasta_2 = EpAffine::from_xy(
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(c.x.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(c.y.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(c.x.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(c.y.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |     )
 | 
			
		
	
		
			
				
					|  |  |  |     .unwrap();
 | 
			
		
	
		
			
				
					|  |  |  |     let d_pasta_2 = EpAffine::from_xy(
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(d.x.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(d.y.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(d.x.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(d.y.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |     )
 | 
			
		
	
		
			
				
					|  |  |  |     .unwrap();
 | 
			
		
	
		
			
				
					|  |  |  |     let e_pasta_2 = EpAffine::from_xy(
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(e.x.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(e.y.to_repr().0).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(e.x.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |       pasta_curves::Fp::from_repr(e.y.to_repr()).unwrap(),
 | 
			
		
	
		
			
				
					|  |  |  |     )
 | 
			
		
	
		
			
				
					|  |  |  |     .unwrap();
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | 
 |