Botan 3.9.0
Crypto and TLS for C&
|
#include <pcurves_mul.h>
Public Types | |
using | AffinePoint = typename C::AffinePoint |
using | ProjectivePoint = typename C::ProjectivePoint |
using | WordType = typename C::WordType |
Public Member Functions | |
AffinePointTable (std::span< const ProjectivePoint > pts) | |
AffinePoint | ct_select (size_t idx) const |
AffinePoint | ct_select (size_t idx, size_t iter) const |
Static Public Attributes | |
static constexpr bool | WholeRangeSearch = (R == 0) |
A precomputed table of affine points with constant time lookup
If R is zero then the entire table is scanned for each lookup.
If R is not zero, then the table must be a multiple of R points long. Each lookup will be examine a range of length R, as in pts[0..R], pts[R..2*R], ...
Definition at line 38 of file pcurves_mul.h.
using Botan::AffinePointTable< C, R >::AffinePoint = typename C::AffinePoint |
Definition at line 40 of file pcurves_mul.h.
using Botan::AffinePointTable< C, R >::ProjectivePoint = typename C::ProjectivePoint |
Definition at line 41 of file pcurves_mul.h.
using Botan::AffinePointTable< C, R >::WordType = typename C::WordType |
Definition at line 42 of file pcurves_mul.h.
|
inlineexplicit |
Definition at line 46 of file pcurves_mul.h.
References BOTAN_ASSERT_NOMSG, and Botan::to_affine_batch().
|
inline |
If idx is zero then return the identity element. Otherwise return pts[idx - 1]
Definition at line 60 of file pcurves_mul.h.
References BOTAN_DEBUG_ASSERT, Botan::CT::Mask< T >::is_equal(), and WholeRangeSearch.
Referenced by Botan::mul2_exec(), and Botan::varpoint_exec().
|
inline |
If idx is zero then return the identity element. Otherwise return pts[idx - 1] out of the table subrange pts[iter*R..(iter+1)*R]
Definition at line 81 of file pcurves_mul.h.
References BOTAN_DEBUG_ASSERT, Botan::CT::Mask< T >::is_equal(), and WholeRangeSearch.
|
staticconstexpr |
Definition at line 44 of file pcurves_mul.h.
Referenced by ct_select(), and ct_select().