MOTION  0.01
Framework for mixed-protocol multi-party computation
Functions
encrypto::motion::curve25519 Namespace Reference

Functions

static uint64_t load_3 (const uint8_t *in)
 
static uint64_t load_4 (const uint8_t *in)
 
static uint8_t addcarryx_u25 (uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
 
static uint8_t addcarryx_u26 (uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
 
static uint8_t subborrow_u25 (uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
 
static uint8_t subborrow_u26 (uint8_t c, uint32_t a, uint32_t b, uint32_t *low)
 
static uint32_t cmovznz32 (uint32_t t, uint32_t z, uint32_t nz)
 
static void fe_frombytes_impl (uint32_t h[10], const uint8_t *s)
 
static void fe_frombytes (fe *h, const uint8_t *s)
 
static void fe_freeze (uint32_t out[10], const uint32_t in1[10])
 
static void fe_tobytes (uint8_t s[32], const fe *f)
 
static void fe_0 (fe *h)
 
static void fe_loose_0 (fe_loose *h)
 
static void fe_1 (fe *h)
 
static void fe_loose_1 (fe_loose *h)
 
static void fe_add_impl (uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 
static void fe_add (fe_loose *h, const fe *f, const fe *g)
 
static void fe_sub_impl (uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 
static void fe_sub (fe_loose *h, const fe *f, const fe *g)
 
static void fe_carry_impl (uint32_t out[10], const uint32_t in1[10])
 
static void fe_carry (fe *h, const fe_loose *f)
 
static void fe_mul_impl (uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 
static void fe_mul_ltt (fe_loose *h, const fe *f, const fe *g)
 
static void fe_mul_llt (fe_loose *h, const fe_loose *f, const fe *g)
 
static void fe_mul_ttt (fe *h, const fe *f, const fe *g)
 
static void fe_mul_tlt (fe *h, const fe_loose *f, const fe *g)
 
static void fe_mul_ttl (fe *h, const fe *f, const fe_loose *g)
 
static void fe_mul_tll (fe *h, const fe_loose *f, const fe_loose *g)
 
static void fe_sqr_impl (uint32_t out[10], const uint32_t in1[10])
 
static void fe_sq_tl (fe *h, const fe_loose *f)
 
static void fe_sq_tt (fe *h, const fe *f)
 
static void fe_cswap (fe *f, fe *g, unsigned int b)
 
static void fe_mul_121666_impl (uint32_t out[10], const uint32_t in1[10])
 
static void fe_mul121666 (fe *h, const fe_loose *f)
 
static void fe_neg_impl (uint32_t out[10], const uint32_t in2[10])
 
static void fe_neg (fe_loose *h, const fe *f)
 
static void fe_cmov (fe_loose *f, const fe_loose *g, unsigned b)
 
static void fe_copy (fe *h, const fe *f)
 
static void fe_copy_lt (fe_loose *h, const fe *f)
 
static void fe_copy_ll (fe_loose *h, const fe_loose *f)
 
static void fe_loose_invert (fe *out, const fe_loose *z)
 
static void fe_invert (fe *out, const fe *z)
 
static int fe_isnonzero (const fe_loose *f)
 
static int fe_isnegative (const fe *f)
 
static void fe_sq2_tt (fe *h, const fe *f)
 
static void fe_pow22523 (fe *out, const fe *z)
 
void x25519_ge_tobytes (uint8_t s[32], const ge_p2 *h)
 
void ge_p3_tobytes (uint8_t s[32], const ge_p3 *h)
 
int x25519_ge_frombytes_vartime (ge_p3 *h, const uint8_t *s)
 
void ge_p2_0 (ge_p2 *h)
 
void ge_p3_0 (ge_p3 *h)
 
void ge_cached_0 (ge_cached *h)
 
void ge_precomp_0 (ge_precomp *h)
 
static void ge_p3_to_p2 (ge_p2 *r, const ge_p3 *p)
 
void x25519_ge_p3_to_cached (ge_cached *r, const ge_p3 *p)
 
void x25519_ge_p1p1_to_p2 (ge_p2 *r, const ge_p1p1 *p)
 
void x25519_ge_p1p1_to_p3 (ge_p3 *r, const ge_p1p1 *p)
 
static void ge_p1p1_to_cached (ge_cached *r, const ge_p1p1 *p)
 
static void ge_p2_dbl (ge_p1p1 *r, const ge_p2 *p)
 
static void ge_p3_dbl (ge_p1p1 *r, const ge_p3 *p)
 
static void ge_madd (ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
 
static void ge_msub (ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q)
 
void x25519_ge_add (ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
 
void x25519_ge_sub (ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
 
static uint8_t equal (signed char b, signed char c)
 
static void cmov (ge_precomp *t, const ge_precomp *u, uint8_t b)
 
void x25519_ge_scalarmult_small_precomp (ge_p3 *h, const uint8_t a[32], const uint8_t precomp_table[15 *2 *32])
 
static uint8_t negative (signed char b)
 
static void table_select (ge_precomp *t, int pos, signed char b)
 
void x25519_ge_scalarmult_base (ge_p3 *h, const uint8_t *a)
 
static void cmov_cached (ge_cached *t, ge_cached *u, uint8_t b)
 
void x25519_ge_scalarmult (ge_p2 *r, const uint8_t *scalar, const ge_p3 *A)
 
static void slide (signed char *r, const uint8_t *a)
 
void ge_double_scalarmult_vartime (ge_p2 *r, const uint8_t *a, const ge_p3 *A, const uint8_t *b)
 
void x25519_sc_reduce (uint8_t s[64])
 
static void sc_muladd (uint8_t *s, const uint8_t *a, const uint8_t *b, const uint8_t *c)
 
static void x25519_scalar_mult_generic (uint8_t out[32], const uint8_t scalar[32], const uint8_t point[32])
 
static void x25519_scalar_mult (uint8_t out[32], const uint8_t scalar[32], const uint8_t point[32])
 
void RandomBytes (void *buf, size_t nbytes)
 
void sc_random (uint8_t s[32])
 
void x25519_ge_p2_to_p3 (ge_p3 *r, const ge_p2 *p)
 

Function Documentation

◆ addcarryx_u25()

static uint8_t encrypto::motion::curve25519::addcarryx_u25 ( uint8_t  c,
uint32_t  a,
uint32_t  b,
uint32_t *  low 
)
static
Here is the caller graph for this function:

◆ addcarryx_u26()

static uint8_t encrypto::motion::curve25519::addcarryx_u26 ( uint8_t  c,
uint32_t  a,
uint32_t  b,
uint32_t *  low 
)
static
Here is the caller graph for this function:

◆ cmov()

static void encrypto::motion::curve25519::cmov ( ge_precomp t,
const ge_precomp u,
uint8_t  b 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cmov_cached()

static void encrypto::motion::curve25519::cmov_cached ( ge_cached t,
ge_cached u,
uint8_t  b 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ cmovznz32()

static uint32_t encrypto::motion::curve25519::cmovznz32 ( uint32_t  t,
uint32_t  z,
uint32_t  nz 
)
static
Here is the caller graph for this function:

◆ equal()

static uint8_t encrypto::motion::curve25519::equal ( signed char  b,
signed char  c 
)
static
Here is the caller graph for this function:

◆ fe_0()

static void encrypto::motion::curve25519::fe_0 ( fe h)
static
Here is the caller graph for this function:

◆ fe_1()

static void encrypto::motion::curve25519::fe_1 ( fe h)
static
Here is the caller graph for this function:

◆ fe_add()

static void encrypto::motion::curve25519::fe_add ( fe_loose h,
const fe f,
const fe g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_add_impl()

static void encrypto::motion::curve25519::fe_add_impl ( uint32_t  out[10],
const uint32_t  in1[10],
const uint32_t  in2[10] 
)
static
Here is the caller graph for this function:

◆ fe_carry()

static void encrypto::motion::curve25519::fe_carry ( fe h,
const fe_loose f 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_carry_impl()

static void encrypto::motion::curve25519::fe_carry_impl ( uint32_t  out[10],
const uint32_t  in1[10] 
)
static
Here is the caller graph for this function:

◆ fe_cmov()

static void encrypto::motion::curve25519::fe_cmov ( fe_loose f,
const fe_loose g,
unsigned  b 
)
static
Here is the caller graph for this function:

◆ fe_copy()

static void encrypto::motion::curve25519::fe_copy ( fe h,
const fe f 
)
static
Here is the caller graph for this function:

◆ fe_copy_ll()

static void encrypto::motion::curve25519::fe_copy_ll ( fe_loose h,
const fe_loose f 
)
static
Here is the caller graph for this function:

◆ fe_copy_lt()

static void encrypto::motion::curve25519::fe_copy_lt ( fe_loose h,
const fe f 
)
static
Here is the caller graph for this function:

◆ fe_cswap()

static void encrypto::motion::curve25519::fe_cswap ( fe f,
fe g,
unsigned int  b 
)
static
Here is the caller graph for this function:

◆ fe_freeze()

static void encrypto::motion::curve25519::fe_freeze ( uint32_t  out[10],
const uint32_t  in1[10] 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_frombytes()

static void encrypto::motion::curve25519::fe_frombytes ( fe h,
const uint8_t *  s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_frombytes_impl()

static void encrypto::motion::curve25519::fe_frombytes_impl ( uint32_t  h[10],
const uint8_t *  s 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_invert()

static void encrypto::motion::curve25519::fe_invert ( fe out,
const fe z 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_isnegative()

static int encrypto::motion::curve25519::fe_isnegative ( const fe f)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_isnonzero()

static int encrypto::motion::curve25519::fe_isnonzero ( const fe_loose f)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_loose_0()

static void encrypto::motion::curve25519::fe_loose_0 ( fe_loose h)
static
Here is the caller graph for this function:

◆ fe_loose_1()

static void encrypto::motion::curve25519::fe_loose_1 ( fe_loose h)
static
Here is the caller graph for this function:

◆ fe_loose_invert()

static void encrypto::motion::curve25519::fe_loose_invert ( fe out,
const fe_loose z 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_mul121666()

static void encrypto::motion::curve25519::fe_mul121666 ( fe h,
const fe_loose f 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_mul_121666_impl()

static void encrypto::motion::curve25519::fe_mul_121666_impl ( uint32_t  out[10],
const uint32_t  in1[10] 
)
static
Here is the caller graph for this function:

◆ fe_mul_impl()

static void encrypto::motion::curve25519::fe_mul_impl ( uint32_t  out[10],
const uint32_t  in1[10],
const uint32_t  in2[10] 
)
static
Here is the caller graph for this function:

◆ fe_mul_llt()

static void encrypto::motion::curve25519::fe_mul_llt ( fe_loose h,
const fe_loose f,
const fe g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_mul_ltt()

static void encrypto::motion::curve25519::fe_mul_ltt ( fe_loose h,
const fe f,
const fe g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_mul_tll()

static void encrypto::motion::curve25519::fe_mul_tll ( fe h,
const fe_loose f,
const fe_loose g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_mul_tlt()

static void encrypto::motion::curve25519::fe_mul_tlt ( fe h,
const fe_loose f,
const fe g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_mul_ttl()

static void encrypto::motion::curve25519::fe_mul_ttl ( fe h,
const fe f,
const fe_loose g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_mul_ttt()

static void encrypto::motion::curve25519::fe_mul_ttt ( fe h,
const fe f,
const fe g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_neg()

static void encrypto::motion::curve25519::fe_neg ( fe_loose h,
const fe f 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_neg_impl()

static void encrypto::motion::curve25519::fe_neg_impl ( uint32_t  out[10],
const uint32_t  in2[10] 
)
static
Here is the caller graph for this function:

◆ fe_pow22523()

static void encrypto::motion::curve25519::fe_pow22523 ( fe out,
const fe z 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_sq2_tt()

static void encrypto::motion::curve25519::fe_sq2_tt ( fe h,
const fe f 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_sq_tl()

static void encrypto::motion::curve25519::fe_sq_tl ( fe h,
const fe_loose f 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_sq_tt()

static void encrypto::motion::curve25519::fe_sq_tt ( fe h,
const fe f 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_sqr_impl()

static void encrypto::motion::curve25519::fe_sqr_impl ( uint32_t  out[10],
const uint32_t  in1[10] 
)
static
Here is the caller graph for this function:

◆ fe_sub()

static void encrypto::motion::curve25519::fe_sub ( fe_loose h,
const fe f,
const fe g 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fe_sub_impl()

static void encrypto::motion::curve25519::fe_sub_impl ( uint32_t  out[10],
const uint32_t  in1[10],
const uint32_t  in2[10] 
)
static
Here is the caller graph for this function:

◆ fe_tobytes()

static void encrypto::motion::curve25519::fe_tobytes ( uint8_t  s[32],
const fe f 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_cached_0()

void encrypto::motion::curve25519::ge_cached_0 ( ge_cached h)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_double_scalarmult_vartime()

void encrypto::motion::curve25519::ge_double_scalarmult_vartime ( ge_p2 r,
const uint8_t *  a,
const ge_p3 A,
const uint8_t *  b 
)
Here is the call graph for this function:

◆ ge_madd()

static void encrypto::motion::curve25519::ge_madd ( ge_p1p1 r,
const ge_p3 p,
const ge_precomp q 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_msub()

static void encrypto::motion::curve25519::ge_msub ( ge_p1p1 r,
const ge_p3 p,
const ge_precomp q 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_p1p1_to_cached()

static void encrypto::motion::curve25519::ge_p1p1_to_cached ( ge_cached r,
const ge_p1p1 p 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_p2_0()

void encrypto::motion::curve25519::ge_p2_0 ( ge_p2 h)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_p2_dbl()

static void encrypto::motion::curve25519::ge_p2_dbl ( ge_p1p1 r,
const ge_p2 p 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_p3_0()

void encrypto::motion::curve25519::ge_p3_0 ( ge_p3 h)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_p3_dbl()

static void encrypto::motion::curve25519::ge_p3_dbl ( ge_p1p1 r,
const ge_p3 p 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_p3_to_p2()

static void encrypto::motion::curve25519::ge_p3_to_p2 ( ge_p2 r,
const ge_p3 p 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_p3_tobytes()

void encrypto::motion::curve25519::ge_p3_tobytes ( uint8_t  s[32],
const ge_p3 h 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ge_precomp_0()

void encrypto::motion::curve25519::ge_precomp_0 ( ge_precomp h)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_3()

static uint64_t encrypto::motion::curve25519::load_3 ( const uint8_t *  in)
static
Here is the caller graph for this function:

◆ load_4()

static uint64_t encrypto::motion::curve25519::load_4 ( const uint8_t *  in)
static
Here is the caller graph for this function:

◆ negative()

static uint8_t encrypto::motion::curve25519::negative ( signed char  b)
static
Here is the caller graph for this function:

◆ RandomBytes()

void encrypto::motion::curve25519::RandomBytes ( void *  buf,
size_t  nbytes 
)
Here is the caller graph for this function:

◆ sc_muladd()

static void encrypto::motion::curve25519::sc_muladd ( uint8_t *  s,
const uint8_t *  a,
const uint8_t *  b,
const uint8_t *  c 
)
static
Here is the call graph for this function:

◆ sc_random()

void encrypto::motion::curve25519::sc_random ( uint8_t  s[32])
Here is the call graph for this function:

◆ slide()

static void encrypto::motion::curve25519::slide ( signed char *  r,
const uint8_t *  a 
)
static
Here is the caller graph for this function:

◆ subborrow_u25()

static uint8_t encrypto::motion::curve25519::subborrow_u25 ( uint8_t  c,
uint32_t  a,
uint32_t  b,
uint32_t *  low 
)
static
Here is the caller graph for this function:

◆ subborrow_u26()

static uint8_t encrypto::motion::curve25519::subborrow_u26 ( uint8_t  c,
uint32_t  a,
uint32_t  b,
uint32_t *  low 
)
static
Here is the caller graph for this function:

◆ table_select()

static void encrypto::motion::curve25519::table_select ( ge_precomp t,
int  pos,
signed char  b 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_ge_add()

void encrypto::motion::curve25519::x25519_ge_add ( ge_p1p1 r,
const ge_p3 p,
const ge_cached q 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_ge_frombytes_vartime()

int encrypto::motion::curve25519::x25519_ge_frombytes_vartime ( ge_p3 h,
const uint8_t *  s 
)
Here is the call graph for this function:

◆ x25519_ge_p1p1_to_p2()

void encrypto::motion::curve25519::x25519_ge_p1p1_to_p2 ( ge_p2 r,
const ge_p1p1 p 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_ge_p1p1_to_p3()

void encrypto::motion::curve25519::x25519_ge_p1p1_to_p3 ( ge_p3 r,
const ge_p1p1 p 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_ge_p2_to_p3()

void encrypto::motion::curve25519::x25519_ge_p2_to_p3 ( ge_p3 r,
const ge_p2 p 
)
Here is the call graph for this function:

◆ x25519_ge_p3_to_cached()

void encrypto::motion::curve25519::x25519_ge_p3_to_cached ( ge_cached r,
const ge_p3 p 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_ge_scalarmult()

void encrypto::motion::curve25519::x25519_ge_scalarmult ( ge_p2 r,
const uint8_t *  scalar,
const ge_p3 A 
)
Here is the call graph for this function:

◆ x25519_ge_scalarmult_base()

void encrypto::motion::curve25519::x25519_ge_scalarmult_base ( ge_p3 h,
const uint8_t *  a 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_ge_scalarmult_small_precomp()

void encrypto::motion::curve25519::x25519_ge_scalarmult_small_precomp ( ge_p3 h,
const uint8_t  a[32],
const uint8_t  precomp_table[15 *2 *32] 
)
Here is the call graph for this function:

◆ x25519_ge_sub()

void encrypto::motion::curve25519::x25519_ge_sub ( ge_p1p1 r,
const ge_p3 p,
const ge_cached q 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_ge_tobytes()

void encrypto::motion::curve25519::x25519_ge_tobytes ( uint8_t  s[32],
const ge_p2 h 
)
Here is the call graph for this function:

◆ x25519_sc_reduce()

void encrypto::motion::curve25519::x25519_sc_reduce ( uint8_t  s[64])
Here is the call graph for this function:
Here is the caller graph for this function:

◆ x25519_scalar_mult()

static void encrypto::motion::curve25519::x25519_scalar_mult ( uint8_t  out[32],
const uint8_t  scalar[32],
const uint8_t  point[32] 
)
static
Here is the call graph for this function:

◆ x25519_scalar_mult_generic()

static void encrypto::motion::curve25519::x25519_scalar_mult_generic ( uint8_t  out[32],
const uint8_t  scalar[32],
const uint8_t  point[32] 
)
static
Here is the call graph for this function:
Here is the caller graph for this function: