From bf19df64f072c6dfb8886bcd9fe967162f667d15 Mon Sep 17 00:00:00 2001 From: Henry & Isis Date: Mon, 20 Feb 2017 03:06:16 -0800 Subject: [PATCH] Add ScalarMult and BasepointMult impls for DecafPoint --- src/decaf.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/decaf.rs b/src/decaf.rs index d092d9d..f549a78 100644 --- a/src/decaf.rs +++ b/src/decaf.rs @@ -28,6 +28,9 @@ use subtle::CTAssignable; use core::ops::{Add, Sub, Neg}; use curve::ExtendedPoint; +use curve::BasepointMult; +use curve::ScalarMult; +use scalar::Scalar; // ------------------------------------------------------------------------ // Compressed points @@ -181,6 +184,22 @@ impl<'a> Neg for &'a DecafPoint { } } +impl ScalarMult for DecafPoint { + fn scalar_mult(&self, scalar: &Scalar) -> DecafPoint { + DecafPoint(self.0.scalar_mult(scalar)) + } +} + +impl BasepointMult for DecafPoint { + fn basepoint() -> DecafPoint { + DecafPoint(constants::BASEPOINT) + } + + fn basepoint_mult(scalar: &Scalar) -> DecafPoint { + DecafPoint(ExtendedPoint::basepoint_mult(scalar)) + } +} + // ------------------------------------------------------------------------ // Debug traits // ------------------------------------------------------------------------