59QSC_CPLUSPLUS_ENABLED_START
100#define ED448_SEED_SIZE 57U
106#define ED448_SIGNATURE_SIZE 114U
112#define ED448_PUBLICKEY_SIZE 57U
118#define ED448_PRIVATEKEY_SIZE 114U
124#define ED448_CURVE_SIZE 56U
130typedef int32_t qsc_fe448[16U];
210void qsc_fe448_0(qsc_fe448 h);
217void qsc_fe448_1(qsc_fe448 h);
225void qsc_fe448_copy(qsc_fe448 h,
const qsc_fe448 f);
236void qsc_fe448_add(qsc_fe448 h,
const qsc_fe448 f,
const qsc_fe448 g);
247void qsc_fe448_sub(qsc_fe448 h,
const qsc_fe448 f,
const qsc_fe448 g);
257void qsc_fe448_neg(qsc_fe448 h,
const qsc_fe448 f);
266void qsc_fe448_cswap(qsc_fe448 f, qsc_fe448 g, uint32_t b);
277void qsc_fe448_cmov(qsc_fe448 f,
const qsc_fe448 g, uint32_t b);
285int32_t qsc_fe448_is_negative(
const qsc_fe448 f);
293int32_t qsc_fe448_is_zero(
const qsc_fe448 f);
304void qsc_fe448_mul(qsc_fe448 h,
const qsc_fe448 f,
const qsc_fe448 g);
315void qsc_fe448_mul32(qsc_fe448 h,
const qsc_fe448 f, uint32_t n);
325void qsc_fe448_sq(qsc_fe448 h,
const qsc_fe448 f);
335void qsc_fe448_sq2(qsc_fe448 h,
const qsc_fe448 f);
343void qsc_fe448_from_bytes(qsc_fe448 h,
const uint8_t* s);
351void qsc_fe448_reduce(qsc_fe448 h,
const qsc_fe448 f);
359void qsc_fe448_to_bytes(uint8_t* s,
const qsc_fe448 h);
369void qsc_fe448_invert(qsc_fe448 out,
const qsc_fe448 z);
381void qsc_ge448_p1p1_to_p3(qsc_ge448_p3* r,
const qsc_ge448_p1p1* p);
389void qsc_ge448_p1p1_to_p2(qsc_ge448_p2* r,
const qsc_ge448_p1p1* p);
399void qsc_ge448_scalarmult_base(qsc_ge448_p3* h,
const uint8_t* a);
407void qsc_ge448_p3_to_bytes(uint8_t* s,
const qsc_ge448_p3* h);
415int32_t qsc_ge448_is_canonical(
const uint8_t* s);
423int32_t qsc_ge448_has_small_order(
const uint8_t s[57U]);
435int32_t qsc_ge448_from_bytes_negate_vartime(qsc_ge448_p3* h,
const uint8_t* s);
443void qsc_ge448_p3_to_cached(qsc_ge448_cached* r,
const qsc_ge448_p3* p);
454void qsc_ge448_add_cached(qsc_ge448_p1p1* r,
const qsc_ge448_p3* p,
const qsc_ge448_cached* q);
465void qsc_ge448_sub_cached(qsc_ge448_p1p1* r,
const qsc_ge448_p3* p,
const qsc_ge448_cached* q);
476void qsc_ge448_add_precomp(qsc_ge448_p1p1* r,
const qsc_ge448_p3* p,
const qsc_ge448_precomp* q);
487void qsc_ge448_sub_precomp(qsc_ge448_p1p1* r,
const qsc_ge448_p3* p,
const qsc_ge448_precomp* q);
499void qsc_ge448_double_scalarmult_vartime(qsc_ge448_p2* r,
const uint8_t* a,
500 const qsc_ge448_p3* A,
const uint8_t* b);
508void qsc_ge448_to_bytes(uint8_t* s,
const qsc_ge448_p2* h);
522void qsc_sc448_clamp(uint8_t* k);
530int32_t qsc_ed448_small_order(
const uint8_t s[57U]);
538int32_t qsc_sc448_is_canonical(
const uint8_t s[57U]);
548void qsc_sc448_muladd(uint8_t s[57U],
const uint8_t a[57U],
const uint8_t b[57U],
549 const uint8_t c[57U]);
556void qsc_sc448_reduce(uint8_t s[114U]);
566int32_t qsc_sc448_verify(
const uint8_t* x,
const uint8_t* y,
size_t n);
568QSC_CPLUSPLUS_ENABLED_END
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.