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 (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 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.
◆ BigNumAdd()
Adds two BigNum values.
- Parameters
-
| [in] | a | The first operand to be added. |
| [in] | b | The second operand to be added. |
| [out] | r | The result of adding a and b. |
- Returns
- EpidStatus
◆ BigNumDiv()
Divides two BigNum values.
- Note
- Only needed for Intel(R) EPID 1.1 verification.
- Parameters
-
| [in] | a | Dividend parameter. |
| [in] | b | Divisor parameter. |
| [out] | q | Quotient of result. |
| [out] | r | Remainder of result. |
- Returns
- EpidStatus
◆ BigNumIsEven()
Checks if a BigNum is even.
- Parameters
-
| [in] | a | The BigNum to check. |
| [out] | is_even | The result of the check. |
- Returns
- EpidStatus
◆ BigNumIsZero()
Checks if a BigNum is zero.
- Parameters
-
| [in] | a | The BigNum to check. |
| [out] | is_zero | The result of the check. |
- Returns
- EpidStatus
◆ BigNumMod()
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
◆ BigNumMul()
Multiplies two BigNum values.
- Parameters
-
| [in] | a | The first operand to be multiplied. |
| [in] | b | The second operand to be multiplied. |
| [out] | r | The result of multiplying a and b. |
- Returns
- EpidStatus
◆ BigNumPow2N()
Raises 2 to the given power.
- Parameters
-
| [in] | n | The power. |
| [out] | r | The result of 2^n. |
- Returns
- EpidStatus
◆ BigNumSub()
Subtracts two BigNum values.
- Parameters
-
| [in] | a | The first operand to use in subtraction. |
| [in] | b | The second operand to use in subtraction. |
| [out] | r | The result of subtracting a and b. |
- Returns
- EpidStatus
◆ DeleteBigNum()
| 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
◆ 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
◆ ReadBigNum()
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
◆ WriteBigNum()
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