barretenberg
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
plookup::ecc_generator_tables::ecc_generator_table< G1 > Class Template Reference

Public Types

typedef G1::element element
 

Static Public Member Functions

static void init_generator_tables ()
 
static size_t convert_position_to_shifted_naf (const size_t position)
 
static size_t convert_shifted_naf_to_position (const size_t shifted_naf)
 
static std::array< barretenberg::fr, 2 > get_xlo_endo_values (const std::array< uint64_t, 2 > key)
 
static std::array< barretenberg::fr, 2 > get_xhi_endo_values (const std::array< uint64_t, 2 > key)
 
static std::array< barretenberg::fr, 2 > get_xlo_values (const std::array< uint64_t, 2 > key)
 
static std::array< barretenberg::fr, 2 > get_xhi_values (const std::array< uint64_t, 2 > key)
 
static std::array< barretenberg::fr, 2 > get_ylo_values (const std::array< uint64_t, 2 > key)
 
static std::array< barretenberg::fr, 2 > get_yhi_values (const std::array< uint64_t, 2 > key)
 
static std::array< barretenberg::fr, 2 > get_xyprime_values (const std::array< uint64_t, 2 > key)
 
static std::array< barretenberg::fr, 2 > get_xyprime_endo_values (const std::array< uint64_t, 2 > key)
 
static BasicTable generate_xlo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xhi_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xlo_endo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xhi_endo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_ylo_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_yhi_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xyprime_table (BasicTableId id, const size_t table_index)
 
static BasicTable generate_xyprime_endo_table (BasicTableId id, const size_t table_index)
 
static MultiTable get_xlo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xhi_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xlo_endo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xhi_endo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_ylo_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_yhi_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xyprime_table (const MultiTableId id, const BasicTableId basic_id)
 
static MultiTable get_xyprime_endo_table (const MultiTableId id, const BasicTableId basic_id)
 

Static Public Attributes

static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_endo_xlo_table
 
static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_endo_xhi_table
 
static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_xlo_table
 
static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_xhi_table
 
static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_ylo_table
 
static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_yhi_table
 
static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_xyprime_table
 
static std::array< std::pair< barretenberg::fr, barretenberg::fr >, 256 > generator_endo_xyprime_table
 
static bool init = false
 

Member Function Documentation

◆ get_xhi_endo_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xhi_endo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 high 68-bit limbs of x-coordinate (for endomorphism point \lambda.[1])

◆ get_xhi_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xhi_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 high 68-bit limbs of x-coordinate

◆ get_xlo_endo_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xlo_endo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 low 68-bit limbs of x-coordinate (for endomorphism point \lambda.[P])

◆ get_xlo_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xlo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 low 68-bit limbs of x-coordinate

◆ get_xyprime_endo_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xyprime_endo_values ( const std::array< uint64_t, 2 >  key)
static

Get the prime basis limbs for the x and y coordinates (endomorphism version for \lambda.[1])

◆ get_xyprime_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_xyprime_values ( const std::array< uint64_t, 2 >  key)
static

Get the prime basis limbs for the x and y coordinates

◆ get_yhi_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_yhi_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 high 68-bit limbs of y-coordinate

◆ get_ylo_values()

template<typename G1 >
std::array< barretenberg::fr, 2 > plookup::ecc_generator_tables::ecc_generator_table< G1 >::get_ylo_values ( const std::array< uint64_t, 2 >  key)
static

Get 2 low 68-bit limbs of y-coordinate

◆ init_generator_tables()

template<typename G1 >
void plookup::ecc_generator_tables::ecc_generator_table< G1 >::init_generator_tables
static

Init 8-bit generator lookup tables The 8-bit wNAF is structured so that entries are in the range [0, ..., 255]

The actual scalar value = (wNAF * 2) - 255

scalar values are from the values [-255, -253, ..., -3, -1, 1, 3, ..., 253, 255]

Member Data Documentation

◆ generator_endo_xlo_table

template<typename G1 >
std::array<std::pair<barretenberg::fr, barretenberg::fr>, 256> plookup::ecc_generator_tables::ecc_generator_table< G1 >::generator_endo_xlo_table
inlinestatic

Store arrays of precomputed 8-bit lookup tables for generator point coordinates (and their endomorphism equivalents)


The documentation for this class was generated from the following files: