11#ifndef BOTAN_ED25519_FE_H_
12#define BOTAN_ED25519_FE_H_
14#include <botan/exceptn.h>
15#include <botan/mem_ops.h>
30 if(init != 0 && init != 1) {
54 m_fe[0] =
static_cast<int32_t
>(h0);
55 m_fe[1] =
static_cast<int32_t
>(h1);
56 m_fe[2] =
static_cast<int32_t
>(h2);
57 m_fe[3] =
static_cast<int32_t
>(h3);
58 m_fe[4] =
static_cast<int32_t
>(h4);
59 m_fe[5] =
static_cast<int32_t
>(h5);
60 m_fe[6] =
static_cast<int32_t
>(h6);
61 m_fe[7] =
static_cast<int32_t
>(h7);
62 m_fe[8] =
static_cast<int32_t
>(h8);
63 m_fe[9] =
static_cast<int32_t
>(h9);
80 for(
size_t i = 0; i != 32; ++i) {
100 for(
size_t i = 0; i != 10; ++i) {
108 for(
size_t i = 0; i != 10; ++i) {
116 for(
size_t i = 0; i != 10; ++i) {
static FE_25519 add(const FE_25519 &a, const FE_25519 &b)
FE_25519 & operator=(FE_25519 &&other)=default
static FE_25519 sub(const FE_25519 &a, const FE_25519 &b)
FE_25519(const FE_25519 &other)=default
FE_25519(int64_t h0, int64_t h1, int64_t h2, int64_t h3, int64_t h4, int64_t h5, int64_t h6, int64_t h7, int64_t h8, int64_t h9)
void to_bytes(uint8_t b[32]) const
void from_bytes(const uint8_t b[32])
static FE_25519 invert(const FE_25519 &a)
static FE_25519 sqr(const FE_25519 &a)
FE_25519(std::initializer_list< int32_t > x)
FE_25519 & operator=(const FE_25519 &other)=default
static FE_25519 mul(const FE_25519 &a, const FE_25519 &b)
FE_25519(FE_25519 &&other)=default
int32_t & operator[](size_t i)
static FE_25519 negate(const FE_25519 &a)
int32_t operator[](size_t i) const
static FE_25519 pow_22523(const FE_25519 &a)
static FE_25519 sqr_iter(const FE_25519 &a, size_t iter)
static FE_25519 sqr2(const FE_25519 &a)
void fe_sq_iter(FE_25519 &x, const FE_25519 &z, size_t iter)
void fe_copy(FE_25519 &a, const FE_25519 &b)
void fe_pow22523(FE_25519 &x, const FE_25519 &y)
void fe_tobytes(uint8_t *b, const FE_25519 &x)
void fe_invert(FE_25519 &x, const FE_25519 &z)
void fe_sq(FE_25519 &x, const FE_25519 &z)
int fe_isnonzero(const FE_25519 &x)
void secure_scrub_memory(void *ptr, size_t n)
void fe_sq2(FE_25519 &x, const FE_25519 &z)
void fe_add(FE_25519 &x, const FE_25519 &a, const FE_25519 &b)
void fe_sub(FE_25519 &x, const FE_25519 &a, const FE_25519 &b)
int fe_isnegative(const FE_25519 &x)
constexpr void copy_mem(T *out, const T *in, size_t n)
void fe_mul(FE_25519 &x, const FE_25519 &a, const FE_25519 &b)
constexpr void clear_mem(T *ptr, size_t n)
void fe_frombytes(FE_25519 &x, const uint8_t *b)
void fe_neg(FE_25519 &x, const FE_25519 &z)