primeorder/mul_backend/
precomputed_tables.rs1use super::MulBackend;
2use crate::{PrimeCurveParams, PrimeCurveWithBasepointTable, ProjectivePoint};
3use elliptic_curve::Scalar;
4
5pub struct PrecomputedTables<const WINDOW_SIZE: usize>;
7
8impl<C, const WINDOW_SIZE: usize> MulBackend<C> for PrecomputedTables<WINDOW_SIZE>
9where
10 C: PrimeCurveParams + PrimeCurveWithBasepointTable<WINDOW_SIZE>,
11{
12 #[inline]
13 fn mul_by_generator(k: &Scalar<C>) -> ProjectivePoint<C> {
14 C::BASEPOINT_TABLE.mul(k)
15 }
16
17 #[inline]
18 fn mul_by_generator_vartime(k: &Scalar<C>) -> ProjectivePoint<C> {
19 C::BASEPOINT_TABLE.mul_vartime(k)
20 }
21}