Dash Core  0.12.2.1
P2P Digital Currency
field_10x26_impl.h File Reference
#include <stdio.h>
#include <string.h>
#include "util.h"
#include "num.h"
#include "field.h"

Go to the source code of this file.

Macros

#define VERIFY_BITS(x, n)   do { } while(0)
 

Functions

static void secp256k1_fe_verify (const secp256k1_fe *a)
 
static void secp256k1_fe_normalize (secp256k1_fe *r)
 
static void secp256k1_fe_normalize_weak (secp256k1_fe *r)
 
static void secp256k1_fe_normalize_var (secp256k1_fe *r)
 
static int secp256k1_fe_normalizes_to_zero (secp256k1_fe *r)
 
static int secp256k1_fe_normalizes_to_zero_var (secp256k1_fe *r)
 
static SECP256K1_INLINE void secp256k1_fe_set_int (secp256k1_fe *r, int a)
 
static SECP256K1_INLINE int secp256k1_fe_is_zero (const secp256k1_fe *a)
 
static SECP256K1_INLINE int secp256k1_fe_is_odd (const secp256k1_fe *a)
 
static SECP256K1_INLINE void secp256k1_fe_clear (secp256k1_fe *a)
 
static int secp256k1_fe_cmp_var (const secp256k1_fe *a, const secp256k1_fe *b)
 
static int secp256k1_fe_set_b32 (secp256k1_fe *r, const unsigned char *a)
 
static void secp256k1_fe_get_b32 (unsigned char *r, const secp256k1_fe *a)
 
static SECP256K1_INLINE void secp256k1_fe_negate (secp256k1_fe *r, const secp256k1_fe *a, int m)
 
static SECP256K1_INLINE void secp256k1_fe_mul_int (secp256k1_fe *r, int a)
 
static SECP256K1_INLINE void secp256k1_fe_add (secp256k1_fe *r, const secp256k1_fe *a)
 
static SECP256K1_INLINE void secp256k1_fe_mul_inner (uint32_t *r, const uint32_t *a, const uint32_t *SECP256K1_RESTRICT b)
 
static SECP256K1_INLINE void secp256k1_fe_sqr_inner (uint32_t *r, const uint32_t *a)
 
static void secp256k1_fe_mul (secp256k1_fe *r, const secp256k1_fe *a, const secp256k1_fe *SECP256K1_RESTRICT b)
 
static void secp256k1_fe_sqr (secp256k1_fe *r, const secp256k1_fe *a)
 
static SECP256K1_INLINE void secp256k1_fe_cmov (secp256k1_fe *r, const secp256k1_fe *a, int flag)
 
static SECP256K1_INLINE void secp256k1_fe_storage_cmov (secp256k1_fe_storage *r, const secp256k1_fe_storage *a, int flag)
 
static void secp256k1_fe_to_storage (secp256k1_fe_storage *r, const secp256k1_fe *a)
 
static SECP256K1_INLINE void secp256k1_fe_from_storage (secp256k1_fe *r, const secp256k1_fe_storage *a)
 

Macro Definition Documentation

◆ VERIFY_BITS

#define VERIFY_BITS (   x,
 
)    do { } while(0)

Definition at line 435 of file field_10x26_impl.h.

Referenced by secp256k1_fe_mul_inner(), and secp256k1_fe_sqr_inner().

Function Documentation

◆ secp256k1_fe_add()

static SECP256K1_INLINE void secp256k1_fe_add ( secp256k1_fe r,
const secp256k1_fe a 
)
static

Definition at line 411 of file field_10x26_impl.h.

◆ secp256k1_fe_clear()

static SECP256K1_INLINE void secp256k1_fe_clear ( secp256k1_fe a)
static

◆ secp256k1_fe_cmov()

static SECP256K1_INLINE void secp256k1_fe_cmov ( secp256k1_fe r,
const secp256k1_fe a,
int  flag 
)
static

Definition at line 1071 of file field_10x26_impl.h.

◆ secp256k1_fe_cmp_var()

static int secp256k1_fe_cmp_var ( const secp256k1_fe a,
const secp256k1_fe b 
)
static

Definition at line 310 of file field_10x26_impl.h.

◆ secp256k1_fe_from_storage()

static SECP256K1_INLINE void secp256k1_fe_from_storage ( secp256k1_fe r,
const secp256k1_fe_storage a 
)
static

Definition at line 1121 of file field_10x26_impl.h.

◆ secp256k1_fe_get_b32()

static void secp256k1_fe_get_b32 ( unsigned char *  r,
const secp256k1_fe a 
)
static

Convert a field element to a 32-byte big endian value. Requires the input to be normalized

Definition at line 353 of file field_10x26_impl.h.

◆ secp256k1_fe_is_odd()

static SECP256K1_INLINE int secp256k1_fe_is_odd ( const secp256k1_fe a)
static

Definition at line 291 of file field_10x26_impl.h.

◆ secp256k1_fe_is_zero()

static SECP256K1_INLINE int secp256k1_fe_is_zero ( const secp256k1_fe a)
static

Definition at line 282 of file field_10x26_impl.h.

◆ secp256k1_fe_mul()

static void secp256k1_fe_mul ( secp256k1_fe r,
const secp256k1_fe a,
const secp256k1_fe *SECP256K1_RESTRICT  b 
)
static

Definition at line 1042 of file field_10x26_impl.h.

◆ secp256k1_fe_mul_inner()

static SECP256K1_INLINE void secp256k1_fe_mul_inner ( uint32_t *  r,
const uint32_t *  a,
const uint32_t *SECP256K1_RESTRICT  b 
)
static

[... a b c] is a shorthand for ... + a<<52 + b<<26 + c<<0 mod n. px is a shorthand for sum(a[i]*b[x-i], i=0..x). Note that [x 0 0 0 0 0 0 0 0 0 0] = [x*R1 x*R0].

Definition at line 438 of file field_10x26_impl.h.

Referenced by secp256k1_fe_mul().

◆ secp256k1_fe_mul_int()

static SECP256K1_INLINE void secp256k1_fe_mul_int ( secp256k1_fe r,
int  a 
)
static

Definition at line 393 of file field_10x26_impl.h.

◆ secp256k1_fe_negate()

static SECP256K1_INLINE void secp256k1_fe_negate ( secp256k1_fe r,
const secp256k1_fe a,
int  m 
)
static

Definition at line 371 of file field_10x26_impl.h.

◆ secp256k1_fe_normalize()

static void secp256k1_fe_normalize ( secp256k1_fe r)
static

Definition at line 49 of file field_10x26_impl.h.

◆ secp256k1_fe_normalize_var()

static void secp256k1_fe_normalize_var ( secp256k1_fe r)
static

Definition at line 135 of file field_10x26_impl.h.

◆ secp256k1_fe_normalize_weak()

static void secp256k1_fe_normalize_weak ( secp256k1_fe r)
static

Definition at line 104 of file field_10x26_impl.h.

◆ secp256k1_fe_normalizes_to_zero()

static int secp256k1_fe_normalizes_to_zero ( secp256k1_fe r)
static

Definition at line 191 of file field_10x26_impl.h.

◆ secp256k1_fe_normalizes_to_zero_var()

static int secp256k1_fe_normalizes_to_zero_var ( secp256k1_fe r)
static

Definition at line 220 of file field_10x26_impl.h.

◆ secp256k1_fe_set_b32()

static int secp256k1_fe_set_b32 ( secp256k1_fe r,
const unsigned char *  a 
)
static

Definition at line 329 of file field_10x26_impl.h.

◆ secp256k1_fe_set_int()

static SECP256K1_INLINE void secp256k1_fe_set_int ( secp256k1_fe r,
int  a 
)
static

Definition at line 272 of file field_10x26_impl.h.

◆ secp256k1_fe_sqr()

static void secp256k1_fe_sqr ( secp256k1_fe r,
const secp256k1_fe a 
)
static

Definition at line 1058 of file field_10x26_impl.h.

◆ secp256k1_fe_sqr_inner()

static SECP256K1_INLINE void secp256k1_fe_sqr_inner ( uint32_t *  r,
const uint32_t *  a 
)
static

[... a b c] is a shorthand for ... + a<<52 + b<<26 + c<<0 mod n. px is a shorthand for sum(a[i]*a[x-i], i=0..x). Note that [x 0 0 0 0 0 0 0 0 0 0] = [x*R1 x*R0].

Definition at line 767 of file field_10x26_impl.h.

Referenced by secp256k1_fe_sqr().

◆ secp256k1_fe_storage_cmov()

static SECP256K1_INLINE void secp256k1_fe_storage_cmov ( secp256k1_fe_storage r,
const secp256k1_fe_storage a,
int  flag 
)
static

Definition at line 1093 of file field_10x26_impl.h.

◆ secp256k1_fe_to_storage()

static void secp256k1_fe_to_storage ( secp256k1_fe_storage r,
const secp256k1_fe a 
)
static

Definition at line 1107 of file field_10x26_impl.h.

◆ secp256k1_fe_verify()