123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- #ifndef EPID_MEMBER_TINY_MATH_FQ_H_
- #define EPID_MEMBER_TINY_MATH_FQ_H_
- #include <stddef.h>
- #include <stdint.h>
- #include "epid/common/bitsupplier.h"
- typedef struct FqElem FqElem;
- typedef struct VeryLargeInt VeryLargeInt;
- int FqInField(FqElem const* in);
- void FqAdd(FqElem* result, FqElem const* left, FqElem const* right);
- void FqSub(FqElem* result, FqElem const* left, FqElem const* right);
- void FqMul(FqElem* result, FqElem const* left, FqElem const* right);
- void FqExp(FqElem* result, FqElem const* base, VeryLargeInt const* exp);
- void FqCp(FqElem* result, FqElem const* in);
- int FqIsZero(FqElem const* value);
- void FqInv(FqElem* result, FqElem const* in);
- void FqNeg(FqElem* result, FqElem const* in);
- void FqSquare(FqElem* result, FqElem const* in);
- void FqClear(FqElem* result);
- void FqSet(FqElem* result, uint32_t in);
- int FqEq(FqElem const* left, FqElem const* right);
- void FqCondSet(FqElem* result, FqElem const* true_val, FqElem const* false_val,
- int truth_val);
- int FqSqrt(FqElem* result, FqElem const* in);
- int FqRand(FqElem* result, BitSupplier rnd_func, void* rnd_param);
- void FqFromHash(FqElem* result, unsigned char const* hash, size_t len);
- #endif
|