Big number interface. More...
#include <stddef.h>#include <stdint.h>#include "epid/common/errors.h"#include "epid/common/stdtypes.h"#include "epid/common/types.h"Typedefs | |
| typedef struct BigNum | BigNum |
| Internal representation of large numbers. | |
Functions | |
| EpidStatus | NewBigNum (size_t data_size_bytes, BigNum **bignum) |
| Constructs a new BigNum. More... | |
| void | DeleteBigNum (BigNum **bignum) |
| Deletes a previously allocated BigNum. More... | |
| EpidStatus | ReadBigNum (ConstOctStr bn_str, size_t strlen, BigNum *bn) |
| Deserializes a BigNum from a string. More... | |
| EpidStatus | WriteBigNum (BigNum const *bn, size_t strlen, OctStr bn_str) |
| Serializes a BigNum to a string. More... | |
| EpidStatus | BigNumAdd (BigNum const *a, BigNum const *b, BigNum *r) |
| Adds two BigNum values. More... | |
| EpidStatus | BigNumSub (BigNum const *a, BigNum const *b, BigNum *r) |
| Subtracts two BigNum values. More... | |
| EpidStatus | BigNumMul (BigNum const *a, BigNum const *b, BigNum *r) |
| Multiplies two BigNum values. More... | |
| EpidStatus | BigNumDiv (BigNum const *a, BigNum const *b, BigNum *q, BigNum *r) |
| Divides two BigNum values. More... | |
| EpidStatus | BigNumMod (BigNum const *a, BigNum const *b, BigNum *r) |
| Computes modular reduction for BigNum value by specified modulus. More... | |
| EpidStatus | BigNumIsEven (BigNum const *a, bool *is_even) |
| Checks if a BigNum is even. More... | |
| EpidStatus | BigNumIsZero (BigNum const *a, bool *is_zero) |
| Checks if a BigNum is zero. More... | |
| EpidStatus | BigNumPow2N (unsigned int n, BigNum *r) |
| Raises 2 to the given power. More... | |
Big number interface.