libdecaf
Loading...
Searching...
No Matches
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)
#define LIMB_MASK(i)

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.
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.
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.
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.

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.

Macro Definition Documentation

◆ LIMB_MASK

#define LIMB_MASK ( i)
Value:
(((1ull)<<LIMB_PLACE_VALUE(i))-1)

◆ LIMBPERM

#define LIMBPERM ( i)
Value:
(i)

Function Documentation

◆ 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.