diff --git a/build.rs b/build.rs index 595d369..7d06199 100644 --- a/build.rs +++ b/build.rs @@ -59,7 +59,7 @@ mod scalar_mul; use edwards::EdwardsBasepointTable; use curve_models::AffineNielsPoint; -use scalar_mul::window::OddLookupTable; +use scalar_mul::window::NafLookupTable5; fn main() { // Enable the "precomputed_tables" feature in the main build stage @@ -86,7 +86,7 @@ use edwards::EdwardsBasepointTable; use curve_models::AffineNielsPoint; use scalar_mul::window::LookupTable; -use scalar_mul::window::OddLookupTable; +use scalar_mul::window::NafLookupTable5; /// Table containing precomputed multiples of the Ed25519 basepoint \\\\(B = (x, 4/5)\\\\). pub const ED25519_BASEPOINT_TABLE: EdwardsBasepointTable = ED25519_BASEPOINT_TABLE_INNER_DOC_HIDDEN; @@ -101,13 +101,13 @@ pub const ED25519_BASEPOINT_TABLE_INNER_DOC_HIDDEN: EdwardsBasepointTable = {:?} // Now generate AFFINE_ODD_MULTIPLES_OF_BASEPOINT let B = &constants::ED25519_BASEPOINT_POINT; - let odd_multiples = OddLookupTable::::from(B); + let odd_multiples = NafLookupTable5::::from(B); f.write_all( format!( "\n /// Odd multiples of the basepoint `[B, 3B, 5B, 7B, 9B, 11B, 13B, 15B]`. -pub(crate) const AFFINE_ODD_MULTIPLES_OF_BASEPOINT: OddLookupTable = {:?}; +pub(crate) const AFFINE_ODD_MULTIPLES_OF_BASEPOINT: NafLookupTable5 = {:?}; \n\n", &odd_multiples ).as_bytes(), diff --git a/src/backend/avx2/constants.rs b/src/backend/avx2/constants.rs index e0479db..0ef2300 100644 --- a/src/backend/avx2/constants.rs +++ b/src/backend/avx2/constants.rs @@ -12,7 +12,7 @@ use core::simd::u32x8; -use scalar_mul::window::OddLookupTable; +use scalar_mul::window::NafLookupTable5; use backend::avx2::field::FieldElement32x4; use backend::avx2::edwards::{ExtendedPoint, CachedPoint}; @@ -53,8 +53,8 @@ pub(crate) static P_TIMES_2_MASKED: FieldElement32x4 = FieldElement32x4([ ]); /// Odd multiples of the Ed25519 basepoint: -pub(crate) static BASEPOINT_ODD_LOOKUP_TABLE: OddLookupTable = - OddLookupTable([ +pub(crate) static BASEPOINT_ODD_LOOKUP_TABLE: NafLookupTable5 = + NafLookupTable5([ CachedPoint(FieldElement32x4([ u32x8::new(3571425, 10045002, 19036563, 1096096, 243332, 65897020, 0, 28963681), u32x8::new(30896895, 63055514, 1614915, 5095970, 0, 53791688, 0, 31258312), diff --git a/src/backend/avx2/edwards.rs b/src/backend/avx2/edwards.rs index c0ad9ac..3c52bdb 100644 --- a/src/backend/avx2/edwards.rs +++ b/src/backend/avx2/edwards.rs @@ -22,7 +22,7 @@ use subtle::ConditionallyAssignable; use subtle::Choice; use edwards; -use scalar_mul::window::{LookupTable, OddLookupTable}; +use scalar_mul::window::{LookupTable, NafLookupTable5}; use traits::Identity; @@ -294,7 +294,7 @@ impl<'a> From<&'a edwards::EdwardsPoint> for LookupTable { } } -impl<'a> From<&'a edwards::EdwardsPoint> for OddLookupTable { +impl<'a> From<&'a edwards::EdwardsPoint> for NafLookupTable5 { fn from(point: &'a edwards::EdwardsPoint) -> Self { let A = ExtendedPoint::from(*point); let mut Ai = [CachedPoint::from(A); 8]; @@ -303,7 +303,7 @@ impl<'a> From<&'a edwards::EdwardsPoint> for OddLookupTable { Ai[i + 1] = (&A2 + &Ai[i]).into(); } // Now Ai = [A, 3A, 5A, 7A, 9A, 11A, 13A, 15A] - OddLookupTable(Ai) + NafLookupTable5(Ai) } } diff --git a/src/backend/avx2/scalar_mul/vartime_double_base.rs b/src/backend/avx2/scalar_mul/vartime_double_base.rs index aa2aa97..17d21f2 100644 --- a/src/backend/avx2/scalar_mul/vartime_double_base.rs +++ b/src/backend/avx2/scalar_mul/vartime_double_base.rs @@ -12,7 +12,7 @@ use traits::Identity; use scalar::Scalar; use edwards::EdwardsPoint; -use scalar_mul::window::OddLookupTable; +use scalar_mul::window::NafLookupTable5; use backend::avx2::edwards::{CachedPoint, ExtendedPoint}; use backend::avx2::constants::BASEPOINT_ODD_LOOKUP_TABLE; @@ -30,7 +30,7 @@ pub fn mul(a: &Scalar, A: &EdwardsPoint, b: &Scalar) -> EdwardsPoint { } } - let table_A = OddLookupTable::::from(A); + let table_A = NafLookupTable5::::from(A); let table_B = &BASEPOINT_ODD_LOOKUP_TABLE; let mut Q = ExtendedPoint::identity(); diff --git a/src/backend/avx2/scalar_mul/vartime_straus.rs b/src/backend/avx2/scalar_mul/vartime_straus.rs index f05754b..30e68d0 100644 --- a/src/backend/avx2/scalar_mul/vartime_straus.rs +++ b/src/backend/avx2/scalar_mul/vartime_straus.rs @@ -14,7 +14,7 @@ use core::borrow::Borrow; use traits::Identity; use scalar::Scalar; use edwards::EdwardsPoint; -use scalar_mul::window::OddLookupTable; +use scalar_mul::window::NafLookupTable5; use backend::avx2::edwards::{CachedPoint, ExtendedPoint}; /// Perform variable-time, variable-base scalar multiplication. @@ -31,7 +31,7 @@ where .collect(); let lookup_tables: Vec<_> = points .into_iter() - .map(|point| OddLookupTable::::from(point.borrow())) + .map(|point| NafLookupTable5::::from(point.borrow())) .collect(); let mut Q = ExtendedPoint::identity(); diff --git a/src/scalar_mul/vartime_double_base.rs b/src/scalar_mul/vartime_double_base.rs index 9fcd267..bdb7005 100644 --- a/src/scalar_mul/vartime_double_base.rs +++ b/src/scalar_mul/vartime_double_base.rs @@ -14,7 +14,7 @@ use traits::Identity; use scalar::Scalar; use edwards::EdwardsPoint; use curve_models::{ProjectiveNielsPoint, ProjectivePoint}; -use scalar_mul::window::OddLookupTable; +use scalar_mul::window::NafLookupTable5; /// Compute \\(aA + bB\\) in variable time, where \\(B\\) is the Ed25519 basepoint. pub fn mul(a: &Scalar, A: &EdwardsPoint, b: &Scalar) -> EdwardsPoint { @@ -30,7 +30,7 @@ pub fn mul(a: &Scalar, A: &EdwardsPoint, b: &Scalar) -> EdwardsPoint { } } - let table_A = OddLookupTable::::from(A); + let table_A = NafLookupTable5::::from(A); let table_B = &constants::AFFINE_ODD_MULTIPLES_OF_BASEPOINT; let mut r = ProjectivePoint::identity(); diff --git a/src/scalar_mul/vartime_straus.rs b/src/scalar_mul/vartime_straus.rs index b419c0a..03c1f75 100644 --- a/src/scalar_mul/vartime_straus.rs +++ b/src/scalar_mul/vartime_straus.rs @@ -15,7 +15,7 @@ use traits::Identity; use scalar::Scalar; use edwards::EdwardsPoint; use curve_models::{CompletedPoint, ProjectivePoint, ProjectiveNielsPoint}; -use scalar_mul::window::OddLookupTable; +use scalar_mul::window::NafLookupTable5; /// Perform variable-time, variable-base scalar multiplication. pub(crate) fn multiscalar_mul(scalars: I, points: J) -> EdwardsPoint @@ -31,7 +31,7 @@ where .collect(); let lookup_tables: Vec<_> = points .into_iter() - .map(|P| OddLookupTable::::from(P.borrow())) + .map(|P| NafLookupTable5::::from(P.borrow())) .collect(); let mut r = ProjectivePoint::identity(); diff --git a/src/scalar_mul/window.rs b/src/scalar_mul/window.rs index 9b25917..e0b69c2 100644 --- a/src/scalar_mul/window.rs +++ b/src/scalar_mul/window.rs @@ -122,9 +122,9 @@ impl<'a> From<&'a EdwardsPoint> for LookupTable { /// Holds odd multiples 1A, 3A, ..., 15A of a point A. #[derive(Copy, Clone)] -pub(crate) struct OddLookupTable(pub(crate) [T; 8]); +pub(crate) struct NafLookupTable5(pub(crate) [T; 8]); -impl OddLookupTable { +impl NafLookupTable5 { /// Given public, odd \\( x \\) with \\( 0 < x < 2^4 \\), return \\(xA\\). pub fn select(&self, x: usize) -> T { debug_assert_eq!(x & 1, 1); @@ -134,13 +134,13 @@ impl OddLookupTable { } } -impl Debug for OddLookupTable { +impl Debug for NafLookupTable5 { fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - write!(f, "OddLookupTable({:?})", self.0) + write!(f, "NafLookupTable5({:?})", self.0) } } -impl<'a> From<&'a EdwardsPoint> for OddLookupTable { +impl<'a> From<&'a EdwardsPoint> for NafLookupTable5 { fn from(A: &'a EdwardsPoint) -> Self { let mut Ai = [A.to_projective_niels(); 8]; let A2 = A.double(); @@ -148,11 +148,11 @@ impl<'a> From<&'a EdwardsPoint> for OddLookupTable { Ai[i + 1] = (&A2 + &Ai[i]).to_extended().to_projective_niels(); } // Now Ai = [A, 3A, 5A, 7A, 9A, 11A, 13A, 15A] - OddLookupTable(Ai) + NafLookupTable5(Ai) } } -impl<'a> From<&'a EdwardsPoint> for OddLookupTable { +impl<'a> From<&'a EdwardsPoint> for NafLookupTable5 { fn from(A: &'a EdwardsPoint) -> Self { let mut Ai = [A.to_affine_niels(); 8]; let A2 = A.double(); @@ -160,6 +160,6 @@ impl<'a> From<&'a EdwardsPoint> for OddLookupTable { Ai[i + 1] = (&A2 + &Ai[i]).to_extended().to_affine_niels(); } // Now Ai = [A, 3A, 5A, 7A, 9A, 11A, 13A, 15A] - OddLookupTable(Ai) + NafLookupTable5(Ai) } }