libdecaf
Classes | Macros | Typedefs | Functions
f_field.h File Reference

Field-specific code for 2^448 - 2^224 - 1. More...

Go to the source code of this file.

Classes

struct  gf_448_s
 

Macros

#define __DECAF_448_GF_DEFINED__   1
 
#define NLIMBS   (64/sizeof(word_t))
 
#define SER_BYTES   56
 
#define GF_LIT_LIMB_BITS   56
 
#define GF_BITS   448
 
#define ZERO   gf_448_ZERO
 
#define ONE   gf_448_ONE
 
#define MODULUS   gf_448_MODULUS
 
#define gf   gf_448_t
 
#define gf_s   gf_448_s
 
#define gf_eq   gf_448_eq
 
#define gf_lobit   gf_448_lobit
 
#define gf_copy   gf_448_copy
 
#define gf_add   gf_448_add
 
#define gf_sub   gf_448_sub
 
#define gf_add_RAW   gf_448_add_RAW
 
#define gf_sub_RAW   gf_448_sub_RAW
 
#define gf_bias   gf_448_bias
 
#define gf_weak_reduce   gf_448_weak_reduce
 
#define gf_strong_reduce   gf_448_strong_reduce
 
#define gf_mul   gf_448_mul
 
#define gf_sqr   gf_448_sqr
 
#define gf_mulw_unsigned   gf_448_mulw_unsigned
 
#define gf_isr   gf_448_isr
 
#define gf_serialize   gf_448_serialize
 
#define gf_deserialize   gf_448_deserialize
 
#define X_PUBLIC_BYTES   SER_BYTES
 
#define X_PRIVATE_BYTES   X_PUBLIC_BYTES
 
#define X_PRIVATE_BITS   448
 
#define SQRT_MINUS_ONE   P448_SQRT_MINUS_ONE /* might not be defined */
 
#define INLINE_UNUSED   __inline__ __attribute__((unused,always_inline))
 
#define P_MOD_8   7
 
#define LIMBPERM(i)   (i)
 
#define LIMB_MASK(i)   (((1ull)<<LIMB_PLACE_VALUE(i))-1)
 

Typedefs

typedef struct gf_448_s gf_448_s
 
typedef struct gf_448_s gf_448_t[1]
 

Functions

void gf_strong_reduce (gf inout)
 Reduce to canonical form. More...
 
void gf_add (gf out, const gf a, const gf b)
 Add two field elements d = a+b.
 
void gf_sub (gf out, const gf a, const gf b)
 Subtract two gf elements d=a-b.
 
void gf_mul (gf_s *__restrict__ out, const gf a, const gf b)
 
void gf_mulw_unsigned (gf_s *__restrict__ out, const gf a, uint32_t b)
 
void gf_sqr (gf_s *__restrict__ out, const gf a)
 
mask_t gf_isr (gf a, const gf x)
 
mask_t gf_eq (const gf x, const gf y)
 a^2 x = 1, QNR, or 0 if x=0. More...
 
mask_t gf_lobit (const gf x)
 Return high bit of x = low bit of 2x mod p.
 
void gf_serialize (uint8_t serial[SER_BYTES], const gf x)
 Serialize to wire format. More...
 
mask_t gf_deserialize (gf x, const uint8_t serial[SER_BYTES], uint8_t hi_nmask)
 Deserialize from wire format; return -1 on success and 0 on failure. More...
 

Detailed Description

Field-specific code for 2^448 - 2^224 - 1.

Author
Mike Hamburg
Warning
This file was automatically generated in Python. Please do not edit it.

Function Documentation

◆ gf_deserialize()

mask_t gf_deserialize ( gf  x,
const uint8_t  serial[SER_BYTES],
uint8_t  hi_nmask 
)

Deserialize from wire format; return -1 on success and 0 on failure.

◆ gf_eq()

mask_t gf_eq ( const gf  a,
const gf  b 
)

a^2 x = 1, QNR, or 0 if x=0.

Return true if successful

a^2 x = 1, QNR, or 0 if x=0.

◆ gf_serialize()

void gf_serialize ( uint8_t  serial[SER_BYTES],
const gf  x 
)

Serialize to wire format.

◆ gf_strong_reduce()

void gf_strong_reduce ( gf  a)

Reduce to canonical form.