iPXE
weierstrass_curve Struct Reference

A Weierstrass elliptic curve. More...

#include <weierstrass.h>

Data Fields

const unsigned int size
 Number of elements in scalar values.
const char * name
 Curve name.
size_t len
 Length of raw scalar values.
const uint8_tprime_raw
 Field prime.
const uint8_ta_raw
 Constant "a".
const uint8_tb_raw
 Constant "b".
const uint8_tbase
 Base point.
bigint_element_tprime [WEIERSTRASS_NUM_CACHED]
 Cached field prime "N" (and multiples thereof)
bigint_element_tfermat
 Cached constant "N-2" (for Fermat's little theorem)
bigint_element_tsquare
 Cached Montgomery constant (R^2 mod N)
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.

Detailed Description

A Weierstrass elliptic curve.

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

Definition at line 92 of file weierstrass.h.

Field Documentation

◆ size

◆ name

◆ len

size_t weierstrass_curve::len

Length of raw scalar values.

Definition at line 98 of file weierstrass.h.

Referenced by weierstrass_done_raw(), weierstrass_init_curve(), weierstrass_init_raw(), weierstrass_is_infinity(), and weierstrass_multiply().

◆ prime_raw

const uint8_t* weierstrass_curve::prime_raw

Field prime.

Definition at line 100 of file weierstrass.h.

Referenced by weierstrass_init_curve().

◆ a_raw

const uint8_t* weierstrass_curve::a_raw

Constant "a".

Definition at line 102 of file weierstrass.h.

Referenced by weierstrass_init_curve().

◆ b_raw

const uint8_t* weierstrass_curve::b_raw

Constant "b".

Definition at line 104 of file weierstrass.h.

Referenced by weierstrass_init_curve().

◆ base

const uint8_t* weierstrass_curve::base

Base point.

Definition at line 106 of file weierstrass.h.

◆ prime

bigint_element_t* weierstrass_curve::prime[WEIERSTRASS_NUM_CACHED]

Cached field prime "N" (and multiples thereof)

Definition at line 109 of file weierstrass.h.

Referenced by weierstrass_add_raw(), weierstrass_done_raw(), weierstrass_exec(), weierstrass_init_curve(), weierstrass_init_raw(), and weierstrass_verify_raw().

◆ fermat

bigint_element_t* weierstrass_curve::fermat

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

Definition at line 111 of file weierstrass.h.

Referenced by weierstrass_done_raw(), and weierstrass_init_curve().

◆ square

bigint_element_t* weierstrass_curve::square

Cached Montgomery constant (R^2 mod N)

Definition at line 113 of file weierstrass.h.

Referenced by weierstrass_init_curve(), and weierstrass_init_raw().

◆ one

bigint_element_t* weierstrass_curve::one

Cached constant "1", in Montgomery form.

Definition at line 118 of file weierstrass.h.

Referenced by weierstrass_done_raw(), weierstrass_init_curve(), weierstrass_init_raw(), and weierstrass_multiply().

◆ a

bigint_element_t* weierstrass_curve::a

Cached constant "a", in Montgomery form.

Definition at line 120 of file weierstrass.h.

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

◆ b3

bigint_element_t* weierstrass_curve::b3

Cached constant "3b", in Montgomery form.

Definition at line 122 of file weierstrass.h.

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

◆ mont

bigint_element_t* weierstrass_curve::mont[WEIERSTRASS_NUM_MONT]

Definition at line 124 of file weierstrass.h.

Referenced by weierstrass_init_curve().

◆ [union]

union { ... } weierstrass_curve

Cached constants in Montgomery form.


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