[−][src]Struct curve25519_dalek::edwards::EdwardsBasepointTable
A precomputed table of multiples of a basepoint, for accelerating
fixed-base scalar multiplication. One table, for the Ed25519
basepoint, is provided in the constants
module.
The basepoint tables are reasonably large (30KB), so they should probably be boxed.
Methods
impl EdwardsBasepointTable
[src][−]
fn basepoint_mul(&self, scalar: &Scalar) -> EdwardsPoint
[src][−]
The computation uses Pippeneger's algorithm, as described on page 13 of the Ed25519 paper. Write the scalar in radix with coefficients in , i.e., with , . Then Grouping even and odd coefficients gives For each , we create a lookup table of and use it to select in constant time.
The radix- representation requires that the scalar is bounded by , which is always the case.
impl EdwardsBasepointTable
[src][−]
pub fn create(basepoint: &EdwardsPoint) -> EdwardsBasepointTable
[src][−]
Create a table of precomputed multiples of basepoint
.
pub fn basepoint(&self) -> EdwardsPoint
[src][−]
Get the basepoint for this table as an EdwardsPoint
.
Trait Implementations
impl Clone for EdwardsBasepointTable
[src][+]
impl Debug for EdwardsBasepointTable
[src][+]
impl<'a, 'b> Mul<&'a EdwardsBasepointTable> for &'b Scalar
[src][+]
impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTable
[src][+]
Auto Trait Implementations
impl RefUnwindSafe for EdwardsBasepointTable
impl Send for EdwardsBasepointTable
impl Sync for EdwardsBasepointTable
impl Unpin for EdwardsBasepointTable
impl UnwindSafe for EdwardsBasepointTable
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T, U> Cast<U> for T where
U: FromCast<T>,
[+]
U: FromCast<T>,
impl<T> From<T> for T
[src][+]
impl<T> FromBits<T> for T
[+]
impl<T> FromCast<T> for T
[+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T, U> IntoBits<U> for T where
U: FromBits<T>,
[+]
U: FromBits<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,