From 133afff5a77bd8b5405f815b138798a586a25b55 Mon Sep 17 00:00:00 2001 From: Isis Lovecruft Date: Thu, 19 Jul 2018 23:50:00 +0000 Subject: [PATCH 1/2] Feature gate some uses on alloc/std which aren't used in nostd. * FIXES part of #166. --- src/edwards.rs | 3 +++ src/ristretto.rs | 4 +++- src/scalar_mul/straus.rs | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/edwards.rs b/src/edwards.rs index 7e15fce..9c9aa73 100644 --- a/src/edwards.rs +++ b/src/edwards.rs @@ -119,7 +119,10 @@ use scalar_mul::window::LookupTable; use traits::{Identity, IsIdentity}; use traits::ValidityCheck; + +#[cfg(any(feature = "alloc", feature = "std"))] use traits::MultiscalarMul; +#[cfg(any(feature = "alloc", feature = "std"))] use traits::VartimeMultiscalarMul; // ------------------------------------------------------------------------ diff --git a/src/ristretto.rs b/src/ristretto.rs index 5581a19..d12de5d 100644 --- a/src/ristretto.rs +++ b/src/ristretto.rs @@ -192,7 +192,9 @@ use scalar::Scalar; use curve_models::CompletedPoint; -use traits::{Identity, MultiscalarMul, VartimeMultiscalarMul}; +use traits::Identity; +#[cfg(any(feature = "alloc", feature = "std"))] +use traits::{MultiscalarMul, VartimeMultiscalarMul}; // ------------------------------------------------------------------------ // Compressed points diff --git a/src/scalar_mul/straus.rs b/src/scalar_mul/straus.rs index 21bf29e..398e011 100644 --- a/src/scalar_mul/straus.rs +++ b/src/scalar_mul/straus.rs @@ -12,11 +12,16 @@ #![allow(non_snake_case)] +#[cfg(any(feature = "alloc", feature = "std"))] use core::borrow::Borrow; +#[cfg(any(feature = "alloc", feature = "std"))] use edwards::EdwardsPoint; +#[cfg(any(feature = "alloc", feature = "std"))] use scalar::Scalar; +#[cfg(any(feature = "alloc", feature = "std"))] use traits::MultiscalarMul; +#[cfg(any(feature = "alloc", feature = "std"))] use traits::VartimeMultiscalarMul; /// Perform multiscalar multiplication by the interleaved window @@ -40,6 +45,7 @@ use traits::VartimeMultiscalarMul; /// /// [solution]: https://www.jstor.org/stable/2310929 /// [problem]: https://www.jstor.org/stable/2312273 +#[cfg(any(feature = "alloc", feature = "std"))] pub struct Straus {} #[cfg(any(feature = "alloc", feature = "std"))] From 04f75767f3a1292fbe8b5d94af5cd5f5da3dda0f Mon Sep 17 00:00:00 2001 From: Isis Lovecruft Date: Thu, 19 Jul 2018 23:51:13 +0000 Subject: [PATCH 2/2] Scalar::random should work with nostd. * FIXES #166. --- src/scalar.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/scalar.rs b/src/scalar.rs index 945691c..5e4407f 100644 --- a/src/scalar.rs +++ b/src/scalar.rs @@ -436,7 +436,6 @@ impl Scalar { /// # Returns /// /// A random scalar within ℤ/lℤ. - #[cfg(feature = "std")] pub fn random(rng: &mut T) -> Self { let mut scalar_bytes = [0u8; 64]; rng.fill(&mut scalar_bytes);