iPXE
Data Fields
weierstrass_curve Struct Reference

A Weierstrass elliptic curve. More...

#include <weierstrass.h>

Data Fields

const unsigned int size
 Number of elements in scalar values. More...
 
const char * name
 Curve name. More...
 
size_t len
 Length of raw scalar values. More...
 
const uint8_tprime_raw
 Field prime. More...
 
const uint8_ta_raw
 Constant "a". More...
 
const uint8_tb_raw
 Constant "b". More...
 
const uint8_tbase
 Base point. More...
 
bigint_element_tprime [WEIERSTRASS_NUM_CACHED]
 Cached field prime "N" (and multiples thereof) More...
 
bigint_element_tfermat
 Cached constant "N-2" (for Fermat's little theorem) More...
 
bigint_element_tsquare
 Cached Montgomery constant (R^2 mod N) More...
 
union {
   struct {
      bigint_element_t *   one
 Cached constant "1", in Montgomery form. More...
 
      bigint_element_t *   a
 Cached constant "a", in Montgomery form. More...
 
      bigint_element_t *   b3
 Cached constant "3b", in Montgomery form. More...
 
   } 
 
   bigint_element_t *   mont [WEIERSTRASS_NUM_MONT]
 
}; 
 Cached constants in Montgomery form. More...
 

Detailed Description

A Weierstrass elliptic curve.

This is an elliptic curve y^2 = x^3 + ax + b

Definition at line 90 of file weierstrass.h.

Field Documentation

◆ size

const unsigned int weierstrass_curve::size

Number of elements in scalar values.

Definition at line 92 of file weierstrass.h.

Referenced by weierstrass_add_ladder(), weierstrass_add_raw(), weierstrass_init(), weierstrass_multiply(), and weierstrass_verify_raw().

◆ name

const char* weierstrass_curve::name

◆ len

size_t weierstrass_curve::len

Length of raw scalar values.

Definition at line 96 of file weierstrass.h.

Referenced by weierstrass_init(), and weierstrass_multiply().

◆ prime_raw

const uint8_t* weierstrass_curve::prime_raw

Field prime.

Definition at line 98 of file weierstrass.h.

Referenced by weierstrass_init().

◆ a_raw

const uint8_t* weierstrass_curve::a_raw

Constant "a".

Definition at line 100 of file weierstrass.h.

Referenced by weierstrass_init().

◆ b_raw

const uint8_t* weierstrass_curve::b_raw

Constant "b".

Definition at line 102 of file weierstrass.h.

Referenced by weierstrass_init().

◆ base

const uint8_t* weierstrass_curve::base

Base point.

Definition at line 104 of file weierstrass.h.

Referenced by weierstrass_multiply().

◆ prime

bigint_element_t* weierstrass_curve::prime[WEIERSTRASS_NUM_CACHED]

Cached field prime "N" (and multiples thereof)

Definition at line 107 of file weierstrass.h.

Referenced by weierstrass_add_raw(), weierstrass_exec(), weierstrass_init(), weierstrass_multiply(), and weierstrass_verify_raw().

◆ fermat

bigint_element_t* weierstrass_curve::fermat

Cached constant "N-2" (for Fermat's little theorem)

Definition at line 109 of file weierstrass.h.

Referenced by weierstrass_init(), and weierstrass_multiply().

◆ square

bigint_element_t* weierstrass_curve::square

Cached Montgomery constant (R^2 mod N)

Definition at line 111 of file weierstrass.h.

Referenced by weierstrass_init(), and weierstrass_multiply().

◆ one

bigint_element_t* weierstrass_curve::one

Cached constant "1", in Montgomery form.

Definition at line 116 of file weierstrass.h.

Referenced by weierstrass_init(), and weierstrass_multiply().

◆ a

bigint_element_t* weierstrass_curve::a

Cached constant "a", in Montgomery form.

Definition at line 118 of file weierstrass.h.

Referenced by weierstrass_add_raw(), weierstrass_init(), and weierstrass_verify_raw().

◆ b3

bigint_element_t* weierstrass_curve::b3

Cached constant "3b", in Montgomery form.

Definition at line 120 of file weierstrass.h.

Referenced by weierstrass_add_raw(), weierstrass_init(), and weierstrass_verify_raw().

◆ mont

bigint_element_t* weierstrass_curve::mont[WEIERSTRASS_NUM_MONT]

Definition at line 122 of file weierstrass.h.

Referenced by weierstrass_init().

◆ @652

union { ... }

Cached constants in Montgomery form.


The documentation for this struct was generated from the following file: