From b914f779e83647df0cfeb9444de0a2eed18a1eb5 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Tue, 15 Nov 2016 21:20:06 +0100 Subject: [PATCH] Turns out yet another variant of EC_POINT_mul is allowed! --- openssl/src/ec.rs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/openssl/src/ec.rs b/openssl/src/ec.rs index ae712430..a4470b2c 100644 --- a/openssl/src/ec.rs +++ b/openssl/src/ec.rs @@ -144,14 +144,31 @@ impl EcPointRef { } } - /// Computes `generator * n + q * m`, storing the result in `self`. + /// Computes `generator * n`, storing the result ing `self`. pub fn mul_generator(&mut self, group: &EcGroupRef, n: &BigNumRef, - q: &EcPointRef, - m: &BigNumRef, - ctx: &mut BigNumContextRef) + ctx: &BigNumContextRef) -> Result<(), ErrorStack> { + unsafe { + cvt(ffi::EC_POINT_mul(group.as_ptr(), + self.as_ptr(), + n.as_ptr(), + ptr::null(), + ptr::null(), + ctx.as_ptr())) + .map(|_| ()) + } + } + + /// Computes `generator * n + q * m`, storing the result in `self`. + pub fn mul_full(&mut self, + group: &EcGroupRef, + n: &BigNumRef, + q: &EcPointRef, + m: &BigNumRef, + ctx: &mut BigNumContextRef) + -> Result<(), ErrorStack> { unsafe { cvt(ffi::EC_POINT_mul(group.as_ptr(), self.as_ptr(),