Big number operations.
More...
|
typedef struct BigNum | BigNum |
| Internal representation of large numbers.
|
|
|
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 (void const *bn_str, size_t strlen, BigNum *bn) |
| Deserializes a BigNum from a string. More...
|
|
EpidStatus | WriteBigNum (BigNum const *bn, size_t strlen, void const *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 | BigNumMod (BigNum const *a, BigNum const *b, BigNum *r) |
| Computes modular reduction for BigNum value by specified modulus. More...
|
|
Big number operations.
This module provides an API for working with large numbers. BigNums represent non-negative integers.
Each BigNum variable represents a number of a byte-size set when the variable was created. BigNum variables cannot be re-sized after they are created.
Adds two BigNum values.
- Parameters
-
[in] | a | The left hand parameter. |
[in] | b | The right hand parameter. |
[out] | r | The result of adding a and b. |
- Returns
- EpidStatus
Computes modular reduction for BigNum value by specified modulus.
- Parameters
-
[in] | a | The BigNum value. |
[in] | b | The modulus. |
[out] | r | Modular reduction result. |
- Returns
- EpidStatus
Multiplies two BigNum values.
- Parameters
-
[in] | a | The left hand parameter. |
[in] | b | The right hand parameter. |
[out] | r | The result of multiplying a and b. |
- Returns
- EpidStatus
Subtracts two BigNum values.
- Parameters
-
[in] | a | The left hand parameter. |
[in] | b | The right hand parameter. |
[out] | r | The result of subtracting a and b. |
- Returns
- EpidStatus
void DeleteBigNum |
( |
BigNum ** |
bignum | ) |
|
Deletes a previously allocated BigNum.
Frees memory pointed to by bignum. Nulls the pointer.
- Parameters
-
[in] | bignum | The BigNum. Can be NULL. |
- See also
- NewBigNum
Constructs a new BigNum.
Allocates memory and creates a new BigNum.
Use DeleteBigNum() to free memory.
- Parameters
-
[in] | data_size_bytes | The size in bytes of the new number. |
[out] | bignum | The BigNum. |
- Returns
- EpidStatus
- See also
- DeleteBigNum
Deserializes a BigNum from a string.
- Parameters
-
[in] | bn_str | The serialized value. |
[in] | strlen | The size of bn_str in bytes. |
[out] | bn | The target BigNum. |
- Returns
- EpidStatus
EpidStatus WriteBigNum |
( |
BigNum const * |
bn, |
|
|
size_t |
strlen, |
|
|
void const * |
bn_str |
|
) |
| |
Serializes a BigNum to a string.
- Parameters
-
[in] | bn | The BigNum to be serialized. |
[in] | strlen | The size of bn_str in bytes. |
[out] | bn_str | The target string. |
- Returns
- EpidStatus