123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #ifndef EPID_MEMBER_TINY_MATH_FP_H_
- #define EPID_MEMBER_TINY_MATH_FP_H_
- #include <stddef.h>
- #include <stdint.h>
- #include "epid/common/bitsupplier.h"
- typedef struct FpElem FpElem;
- typedef struct VeryLargeInt VeryLargeInt;
- int FpInField(FpElem const* in);
- void FpAdd(FpElem* result, FpElem const* left, FpElem const* right);
- void FpMul(FpElem* result, FpElem const* left, FpElem const* right);
- void FpSub(FpElem* result, FpElem const* left, FpElem const* right);
- void FpExp(FpElem* result, FpElem const* base, VeryLargeInt const* exp);
- void FpNeg(FpElem* result, FpElem const* in);
- int FpEq(FpElem const* left, FpElem const* right);
- void FpInv(FpElem* result, FpElem const* in);
- int FpRand(FpElem* result, BitSupplier rnd_func, void* rnd_param);
- int FpRandNonzero(FpElem* result, BitSupplier rnd_func, void* rnd_param);
- void FpClear(FpElem* result);
- void FpSet(FpElem* result, uint32_t in);
- void FpFromHash(FpElem* result, unsigned char const* hash, size_t len);
- #endif
|