Electroneum
Functions
crypto-ops.c File Reference
#include <assert.h>
#include <stdint.h>
#include "warnings.h"
#include "crypto-ops.h"
Include dependency graph for crypto-ops.c:

Functions

static void fe_mul (fe, const fe, const fe)
 
static void fe_sq (fe, const fe)
 
static void ge_madd (ge_p1p1 *, const ge_p3 *, const ge_precomp *)
 
static void ge_msub (ge_p1p1 *, const ge_p3 *, const ge_precomp *)
 
static void ge_p2_0 (ge_p2 *)
 
static void ge_p3_dbl (ge_p1p1 *, const ge_p3 *)
 
static void fe_divpowm1 (fe, const fe, const fe)
 
uint64_t load_3 (const unsigned char *in)
 
uint64_t load_4 (const unsigned char *in)
 
static void fe_0 (fe h)
 
static void fe_1 (fe h)
 
void fe_add (fe h, const fe f, const fe g)
 
static void fe_cmov (fe f, const fe g, unsigned int b)
 
static void fe_copy (fe h, const fe f)
 
void fe_invert (fe out, const fe z)
 
static int fe_isnegative (const fe f)
 
static int fe_isnonzero (const fe f)
 
static void fe_neg (fe h, const fe f)
 
static void fe_sq2 (fe h, const fe f)
 
static void fe_sub (fe h, const fe f, const fe g)
 
void fe_tobytes (unsigned char *s, const fe h)
 
void ge_add (ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
 
static void slide (signed char *r, const unsigned char *a)
 
void ge_dsm_precomp (ge_dsmp r, const ge_p3 *s)
 
void ge_double_scalarmult_base_vartime (ge_p2 *r, const unsigned char *a, const ge_p3 *A, const unsigned char *b)
 
void ge_double_scalarmult_base_vartime_p3 (ge_p3 *r3, const unsigned char *a, const ge_p3 *A, const unsigned char *b)
 
int ge_frombytes_vartime (ge_p3 *h, const unsigned char *s)
 
void ge_p1p1_to_p2 (ge_p2 *r, const ge_p1p1 *p)
 
void ge_p1p1_to_p3 (ge_p3 *r, const ge_p1p1 *p)
 
void ge_p2_dbl (ge_p1p1 *r, const ge_p2 *p)
 
static void ge_p3_0 (ge_p3 *h)
 
void ge_p3_to_cached (ge_cached *r, const ge_p3 *p)
 
void ge_p3_to_p2 (ge_p2 *r, const ge_p3 *p)
 
void ge_p3_tobytes (unsigned char *s, const ge_p3 *h)
 
static void ge_precomp_0 (ge_precomp *h)
 
static unsigned char equal (signed char b, signed char c)
 
static unsigned char negative (signed char b)
 
static void ge_precomp_cmov (ge_precomp *t, const ge_precomp *u, unsigned char b)
 
static void select (ge_precomp *t, int pos, signed char b)
 
void ge_scalarmult_base (ge_p3 *h, const unsigned char *a)
 
void ge_sub (ge_p1p1 *r, const ge_p3 *p, const ge_cached *q)
 
void ge_tobytes (unsigned char *s, const ge_p2 *h)
 
void sc_reduce (unsigned char *s)
 
static void ge_cached_0 (ge_cached *r)
 
static void ge_cached_cmov (ge_cached *t, const ge_cached *u, unsigned char b)
 
void ge_scalarmult (ge_p2 *r, const unsigned char *a, const ge_p3 *A)
 
void ge_scalarmult_p3 (ge_p3 *r3, const unsigned char *a, const ge_p3 *A)
 
void ge_double_scalarmult_precomp_vartime2 (ge_p2 *r, const unsigned char *a, const ge_dsmp Ai, const unsigned char *b, const ge_dsmp Bi)
 
void ge_double_scalarmult_precomp_vartime2_p3 (ge_p3 *r3, const unsigned char *a, const ge_dsmp Ai, const unsigned char *b, const ge_dsmp Bi)
 
void ge_double_scalarmult_precomp_vartime (ge_p2 *r, const unsigned char *a, const ge_p3 *A, const unsigned char *b, const ge_dsmp Bi)
 
void ge_mul8 (ge_p1p1 *r, const ge_p2 *t)
 
void ge_fromfe_frombytes_vartime (ge_p2 *r, const unsigned char *s)
 
void sc_0 (unsigned char *s)
 
void sc_reduce32 (unsigned char *s)
 
void sc_add (unsigned char *s, const unsigned char *a, const unsigned char *b)
 
void sc_sub (unsigned char *s, const unsigned char *a, const unsigned char *b)
 
void sc_mulsub (unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c)
 
void sc_mul (unsigned char *s, const unsigned char *a, const unsigned char *b)
 
void sc_muladd (unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c)
 
static int64_t signum (int64_t a)
 
int sc_check (const unsigned char *s)
 
int sc_isnonzero (const unsigned char *s)
 
int ge_p3_is_point_at_infinity (const ge_p3 *p)
 

Function Documentation

◆ equal()

static unsigned char equal ( signed char  b,
signed char  c 
)
static

◆ fe_0()

static void fe_0 ( fe  h)
static

◆ fe_1()

static void fe_1 ( fe  h)
static

◆ fe_add()

void fe_add ( fe  h,
const fe  f,
const fe  g 
)

◆ fe_cmov()

static void fe_cmov ( fe  f,
const fe  g,
unsigned int  b 
)
static

◆ fe_copy()

static void fe_copy ( fe  h,
const fe  f 
)
static

◆ fe_divpowm1()

static void fe_divpowm1 ( fe  r,
const fe  u,
const fe  v 
)
static

◆ fe_invert()

void fe_invert ( fe  out,
const fe  z 
)

◆ fe_isnegative()

static int fe_isnegative ( const fe  f)
static

◆ fe_isnonzero()

static int fe_isnonzero ( const fe  f)
static

◆ fe_mul()

static void fe_mul ( fe  h,
const fe  f,
const fe  g 
)
static

◆ fe_neg()

static void fe_neg ( fe  h,
const fe  f 
)
static

◆ fe_sq()

static void fe_sq ( fe  h,
const fe  f 
)
static

◆ fe_sq2()

static void fe_sq2 ( fe  h,
const fe  f 
)
static

◆ fe_sub()

static void fe_sub ( fe  h,
const fe  f,
const fe  g 
)
static

◆ fe_tobytes()

static void fe_tobytes ( unsigned char *  s,
const fe  h 
)

◆ ge_add()

void ge_add ( ge_p1p1 r,
const ge_p3 p,
const ge_cached q 
)

◆ ge_cached_0()

static void ge_cached_0 ( ge_cached r)
static

◆ ge_cached_cmov()

static void ge_cached_cmov ( ge_cached t,
const ge_cached u,
unsigned char  b 
)
static

◆ ge_double_scalarmult_base_vartime()

void ge_double_scalarmult_base_vartime ( ge_p2 r,
const unsigned char *  a,
const ge_p3 A,
const unsigned char *  b 
)

◆ ge_double_scalarmult_base_vartime_p3()

void ge_double_scalarmult_base_vartime_p3 ( ge_p3 r3,
const unsigned char *  a,
const ge_p3 A,
const unsigned char *  b 
)

◆ ge_double_scalarmult_precomp_vartime()

void ge_double_scalarmult_precomp_vartime ( ge_p2 r,
const unsigned char *  a,
const ge_p3 A,
const unsigned char *  b,
const ge_dsmp  Bi 
)

◆ ge_double_scalarmult_precomp_vartime2()

void ge_double_scalarmult_precomp_vartime2 ( ge_p2 r,
const unsigned char *  a,
const ge_dsmp  Ai,
const unsigned char *  b,
const ge_dsmp  Bi 
)

◆ ge_double_scalarmult_precomp_vartime2_p3()

void ge_double_scalarmult_precomp_vartime2_p3 ( ge_p3 r3,
const unsigned char *  a,
const ge_dsmp  Ai,
const unsigned char *  b,
const ge_dsmp  Bi 
)

◆ ge_dsm_precomp()

void ge_dsm_precomp ( ge_dsmp  r,
const ge_p3 s 
)

◆ ge_frombytes_vartime()

int ge_frombytes_vartime ( ge_p3 h,
const unsigned char *  s 
)

◆ ge_fromfe_frombytes_vartime()

void ge_fromfe_frombytes_vartime ( ge_p2 r,
const unsigned char *  s 
)

◆ ge_madd()

static void ge_madd ( ge_p1p1 r,
const ge_p3 p,
const ge_precomp q 
)
static

◆ ge_msub()

static void ge_msub ( ge_p1p1 r,
const ge_p3 p,
const ge_precomp q 
)
static

◆ ge_mul8()

void ge_mul8 ( ge_p1p1 r,
const ge_p2 t 
)

◆ ge_p1p1_to_p2()

void ge_p1p1_to_p2 ( ge_p2 r,
const ge_p1p1 p 
)

◆ ge_p1p1_to_p3()

void ge_p1p1_to_p3 ( ge_p3 r,
const ge_p1p1 p 
)

◆ ge_p2_0()

static void ge_p2_0 ( ge_p2 h)
static

◆ ge_p2_dbl()

void ge_p2_dbl ( ge_p1p1 r,
const ge_p2 p 
)

◆ ge_p3_0()

static void ge_p3_0 ( ge_p3 h)
static

◆ ge_p3_dbl()

static void ge_p3_dbl ( ge_p1p1 r,
const ge_p3 p 
)
static

◆ ge_p3_is_point_at_infinity()

int ge_p3_is_point_at_infinity ( const ge_p3 p)

◆ ge_p3_to_cached()

void ge_p3_to_cached ( ge_cached r,
const ge_p3 p 
)

◆ ge_p3_to_p2()

void ge_p3_to_p2 ( ge_p2 r,
const ge_p3 p 
)

◆ ge_p3_tobytes()

void ge_p3_tobytes ( unsigned char *  s,
const ge_p3 h 
)

◆ ge_precomp_0()

static void ge_precomp_0 ( ge_precomp h)
static

◆ ge_precomp_cmov()

static void ge_precomp_cmov ( ge_precomp t,
const ge_precomp u,
unsigned char  b 
)
static

◆ ge_scalarmult()

void ge_scalarmult ( ge_p2 r,
const unsigned char *  a,
const ge_p3 A 
)

◆ ge_scalarmult_base()

void ge_scalarmult_base ( ge_p3 h,
const unsigned char *  a 
)

◆ ge_scalarmult_p3()

void ge_scalarmult_p3 ( ge_p3 r3,
const unsigned char *  a,
const ge_p3 A 
)

◆ ge_sub()

static void ge_sub ( ge_p1p1 r,
const ge_p3 p,
const ge_cached q 
)

◆ ge_tobytes()

void ge_tobytes ( unsigned char *  s,
const ge_p2 h 
)

◆ load_3()

uint64_t load_3 ( const unsigned char *  in)

◆ load_4()

uint64_t load_4 ( const unsigned char *  in)

◆ negative()

static unsigned char negative ( signed char  b)
static

◆ sc_0()

void sc_0 ( unsigned char *  s)

◆ sc_add()

void sc_add ( unsigned char *  s,
const unsigned char *  a,
const unsigned char *  b 
)

◆ sc_check()

int sc_check ( const unsigned char *  s)

◆ sc_isnonzero()

int sc_isnonzero ( const unsigned char *  s)

◆ sc_mul()

void sc_mul ( unsigned char *  s,
const unsigned char *  a,
const unsigned char *  b 
)

◆ sc_muladd()

void sc_muladd ( unsigned char *  s,
const unsigned char *  a,
const unsigned char *  b,
const unsigned char *  c 
)

◆ sc_mulsub()

void sc_mulsub ( unsigned char *  s,
const unsigned char *  a,
const unsigned char *  b,
const unsigned char *  c 
)

◆ sc_reduce()

void sc_reduce ( unsigned char *  s)

◆ sc_reduce32()

void sc_reduce32 ( unsigned char *  s)

◆ sc_sub()

void sc_sub ( unsigned char *  s,
const unsigned char *  a,
const unsigned char *  b 
)

◆ select()

static void select ( ge_precomp t,
int  pos,
signed char  b 
)
static

◆ signum()

static int64_t signum ( int64_t  a)
static

◆ slide()

static void slide ( signed char *  r,
const unsigned char *  a 
)
static