Skip to content

Commit

Permalink
Add serde test for curves
Browse files Browse the repository at this point in the history
  • Loading branch information
davidnevadoc committed Nov 23, 2022
1 parent b8627f9 commit 280141c
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions src/tests/curve.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use crate::group::GroupEncoding;
use ff::Field;
use group::prime::PrimeCurveAffine;
use pasta_curves::arithmetic::{CurveAffine, CurveExt};
Expand All @@ -11,6 +12,32 @@ pub fn curve_tests<G: CurveExt>() {
mixed_addition::<G>();
multiplication::<G>();
batch_normalize::<G>();
serdes::<G>();
}

fn serdes<G: CurveExt>() {
for _ in 0..100 {
let projective_point = G::random(OsRng);
let affine_point: G::AffineExt = projective_point.into();
let projective_repr = projective_point.to_bytes();
let affine_repr = affine_point.to_bytes();

println!(
"{:?} \n{:?}",
projective_repr.as_ref(),
affine_repr.as_ref()
);

let projective_point_rec = G::from_bytes(&projective_repr).unwrap();
let projective_point_rec_unchecked = G::from_bytes(&projective_repr).unwrap();
let affine_point_rec = G::AffineExt::from_bytes(&affine_repr).unwrap();
let affine_point_rec_unchecked = G::AffineExt::from_bytes(&affine_repr).unwrap();

assert_eq!(projective_point, projective_point_rec);
assert_eq!(projective_point, projective_point_rec_unchecked);
assert_eq!(affine_point, affine_point_rec);
assert_eq!(affine_point, affine_point_rec_unchecked);
}
}

fn is_on_curve<G: CurveExt>() {
Expand Down

0 comments on commit 280141c

Please sign in to comment.