mirror of
https://github.com/saymrwulf/curve25519-dalek-source.git
synced 2026-09-05 20:30:57 +00:00
Rename k_fold_scalar_mult to multiscalar_mult
This commit is contained in:
parent
9c4046c3d9
commit
aaefb90ed3
2 changed files with 12 additions and 12 deletions
20
src/curve.rs
20
src/curve.rs
|
|
@ -935,14 +935,14 @@ impl<'a, 'b> Mul<&'b ExtendedPoint> for &'a Scalar {
|
||||||
/// (possibly secret) points, compute `c_1 P_1 + ... + c_n P_n`.
|
/// (possibly secret) points, compute `c_1 P_1 + ... + c_n P_n`.
|
||||||
///
|
///
|
||||||
/// This function has the same behaviour as
|
/// This function has the same behaviour as
|
||||||
/// `vartime::k_fold_scalar_mult` but is constant-time.
|
/// `vartime::multiscalar_mult` but is constant-time.
|
||||||
///
|
///
|
||||||
/// # Input
|
/// # Input
|
||||||
///
|
///
|
||||||
/// A vector of `Scalar`s and a vector of `ExtendedPoints`. It is an
|
/// A vector of `Scalar`s and a vector of `ExtendedPoints`. It is an
|
||||||
/// error to call this function with two vectors of different lengths.
|
/// error to call this function with two vectors of different lengths.
|
||||||
#[cfg(any(feature = "alloc", feature = "std"))]
|
#[cfg(any(feature = "alloc", feature = "std"))]
|
||||||
pub fn k_fold_scalar_mult<'a, 'b, I, J>(scalars: I, points: J) -> ExtendedPoint
|
pub fn multiscalar_mult<'a, 'b, I, J>(scalars: I, points: J) -> ExtendedPoint
|
||||||
where I: IntoIterator<Item = &'a Scalar>,
|
where I: IntoIterator<Item = &'a Scalar>,
|
||||||
J: IntoIterator<Item = &'b ExtendedPoint>
|
J: IntoIterator<Item = &'b ExtendedPoint>
|
||||||
{
|
{
|
||||||
|
|
@ -1281,7 +1281,7 @@ pub mod vartime {
|
||||||
/// A vector of `Scalar`s and a vector of `ExtendedPoints`. It is an
|
/// A vector of `Scalar`s and a vector of `ExtendedPoints`. It is an
|
||||||
/// error to call this function with two vectors of different lengths.
|
/// error to call this function with two vectors of different lengths.
|
||||||
#[cfg(any(feature = "alloc", feature = "std"))]
|
#[cfg(any(feature = "alloc", feature = "std"))]
|
||||||
pub fn k_fold_scalar_mult<'a, 'b, I, J>(scalars: I, points: J) -> ExtendedPoint
|
pub fn multiscalar_mult<'a, 'b, I, J>(scalars: I, points: J) -> ExtendedPoint
|
||||||
where I: IntoIterator<Item = &'a Scalar>,
|
where I: IntoIterator<Item = &'a Scalar>,
|
||||||
J: IntoIterator<Item = &'b ExtendedPoint>
|
J: IntoIterator<Item = &'b ExtendedPoint>
|
||||||
{
|
{
|
||||||
|
|
@ -1713,9 +1713,9 @@ mod test {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn k_fold_scalar_mult_vs_ed25519py() {
|
fn multiscalar_mult_vs_ed25519py() {
|
||||||
let A = A_TIMES_BASEPOINT.decompress().unwrap();
|
let A = A_TIMES_BASEPOINT.decompress().unwrap();
|
||||||
let result = vartime::k_fold_scalar_mult(
|
let result = vartime::multiscalar_mult(
|
||||||
&[A_SCALAR, B_SCALAR],
|
&[A_SCALAR, B_SCALAR],
|
||||||
&[A, constants::ED25519_BASEPOINT]
|
&[A, constants::ED25519_BASEPOINT]
|
||||||
);
|
);
|
||||||
|
|
@ -1723,13 +1723,13 @@ mod test {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn k_fold_scalar_mult_vartime_vs_consttime() {
|
fn multiscalar_mult_vartime_vs_consttime() {
|
||||||
let A = A_TIMES_BASEPOINT.decompress().unwrap();
|
let A = A_TIMES_BASEPOINT.decompress().unwrap();
|
||||||
let result_vartime = vartime::k_fold_scalar_mult(
|
let result_vartime = vartime::multiscalar_mult(
|
||||||
&[A_SCALAR, B_SCALAR],
|
&[A_SCALAR, B_SCALAR],
|
||||||
&[A, constants::ED25519_BASEPOINT]
|
&[A, constants::ED25519_BASEPOINT]
|
||||||
);
|
);
|
||||||
let result_consttime = k_fold_scalar_mult(
|
let result_consttime = multiscalar_mult(
|
||||||
&[A_SCALAR, B_SCALAR],
|
&[A_SCALAR, B_SCALAR],
|
||||||
&[A, constants::ED25519_BASEPOINT]
|
&[A, constants::ED25519_BASEPOINT]
|
||||||
);
|
);
|
||||||
|
|
@ -1871,7 +1871,7 @@ mod bench {
|
||||||
let B = &constants::ED25519_BASEPOINT_TABLE;
|
let B = &constants::ED25519_BASEPOINT_TABLE;
|
||||||
let points: Vec<_> = scalars.iter().map(|s| B * &s).collect();
|
let points: Vec<_> = scalars.iter().map(|s| B * &s).collect();
|
||||||
|
|
||||||
b.iter(|| k_fold_scalar_mult(&scalars, &points));
|
b.iter(|| multiscalar_mult(&scalars, &points));
|
||||||
}
|
}
|
||||||
|
|
||||||
mod vartime {
|
mod vartime {
|
||||||
|
|
@ -1900,7 +1900,7 @@ mod bench {
|
||||||
//
|
//
|
||||||
// Since this is a variable-time function, this means the
|
// Since this is a variable-time function, this means the
|
||||||
// benchmark is only useful as a ballpark measurement.
|
// benchmark is only useful as a ballpark measurement.
|
||||||
b.iter(|| vartime::k_fold_scalar_mult(&scalars, &points));
|
b.iter(|| vartime::multiscalar_mult(&scalars, &points));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -683,12 +683,12 @@ pub mod vartime {
|
||||||
///
|
///
|
||||||
/// A vector of `Scalar`s and a vector of `ExtendedPoints`. It is an
|
/// A vector of `Scalar`s and a vector of `ExtendedPoints`. It is an
|
||||||
/// error to call this function with two vectors of different lengths.
|
/// error to call this function with two vectors of different lengths.
|
||||||
pub fn k_fold_scalar_mult<'a, 'b, I, J>(scalars: I, points: J) -> DecafPoint
|
pub fn multiscalar_mult<'a, 'b, I, J>(scalars: I, points: J) -> DecafPoint
|
||||||
where I: IntoIterator<Item = &'a Scalar>,
|
where I: IntoIterator<Item = &'a Scalar>,
|
||||||
J: IntoIterator<Item = &'b DecafPoint>
|
J: IntoIterator<Item = &'b DecafPoint>
|
||||||
{
|
{
|
||||||
let extended_points = points.into_iter().map(|P| &P.0);
|
let extended_points = points.into_iter().map(|P| &P.0);
|
||||||
DecafPoint(curve::vartime::k_fold_scalar_mult(scalars, extended_points))
|
DecafPoint(curve::vartime::multiscalar_mult(scalars, extended_points))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue