diff --git a/src/elliptic_curve/elliptic_curve.rs b/src/elliptic_curve/elliptic_curve.rs index bef7caa..1d2824c 100644 --- a/src/elliptic_curve/elliptic_curve.rs +++ b/src/elliptic_curve/elliptic_curve.rs @@ -45,10 +45,15 @@ impl EllipticCurve { (phi, psi) }; + println!("{}, {}", phi, psi); + + let x = phi.clone() * phi.clone() - lhs.x.clone() - rhs.x.clone(); + let y = - phi * x.clone() - psi; + EllipticCurvePoint { - x: phi.clone() * phi - lhs.x.clone() - rhs.x.clone(), - y: todo!(), - infinity: todo!(), + x, + y, + infinity: false } } diff --git a/src/main.rs b/src/main.rs index ccd5eb6..71679ea 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,20 @@ +use encrypt::{common::finite_field::FiniteFieldElement, elliptic_curve::elliptic_curve::{EllipticCurve, EllipticCurvePoint}, b, ffe}; +use bigdecimal::{BigDecimal, FromPrimitive}; + fn main() { println!("Encryption Library"); + + let ec = EllipticCurve { + a: b!(1), + b: b!(1), + p: b!(5), + }; + + let ecp1 = EllipticCurvePoint { + x: ffe!(0, 5), + y: ffe!(1, 5), + infinity: false + }; + + println!("{:?}", ec.add(ecp1.clone(), ecp1)); }