Big number math. More...

Go to the source code of this file.
Functions | |
| struct bignum * | bignum_init (void) |
| Allocate memory for bignum. | |
| void | bignum_deinit (struct bignum *n) |
| Free bignum. | |
| size_t | bignum_get_unsigned_bin_len (struct bignum *n) |
| Get length of bignum as an unsigned binary buffer. | |
| int | bignum_get_unsigned_bin (const struct bignum *n, u8 *buf, size_t *len) |
| Set binary buffer to unsigned bignum. | |
| int | bignum_set_unsigned_bin (struct bignum *n, const u8 *buf, size_t len) |
| Set bignum based on unsigned binary buffer. | |
| int | bignum_cmp (const struct bignum *a, const struct bignum *b) |
| Signed comparison. | |
| int | bignum_cmp_d (const struct bignum *a, unsigned long b) |
| Compare bignum to standard integer. | |
| int | bignum_add (const struct bignum *a, const struct bignum *b, struct bignum *c) |
| c = a + b | |
| int | bignum_sub (const struct bignum *a, const struct bignum *b, struct bignum *c) |
| c = a - b | |
| int | bignum_mul (const struct bignum *a, const struct bignum *b, struct bignum *c) |
| c = a * b | |
| int | bignum_mulmod (const struct bignum *a, const struct bignum *b, const struct bignum *c, struct bignum *d) |
| d = a * b (mod c) | |
| int | bignum_exptmod (const struct bignum *a, const struct bignum *b, const struct bignum *c, struct bignum *d) |
| Modular exponentiation: d = a^b (mod c). | |
Big number math.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
Alternatively, this software may be distributed under the terms of BSD license.
See README and COPYING for more details.
Definition in file bignum.h.
| int bignum_add | ( | const struct bignum * | a, | |
| const struct bignum * | b, | |||
| struct bignum * | c | |||
| ) |
c = a + b
| a | Bignum from bignum_init() | |
| b | Bignum from bignum_init() | |
| c | Bignum from bignum_init(); used to store the result of a + b |
Definition at line 155 of file bignum.c.

| int bignum_cmp | ( | const struct bignum * | a, | |
| const struct bignum * | b | |||
| ) |
Signed comparison.
| a | Bignum from bignum_init() | |
| b | Bignum from bignum_init() |
| int bignum_cmp_d | ( | const struct bignum * | a, | |
| unsigned long | b | |||
| ) |
Compare bignum to standard integer.
| a | Bignum from bignum_init() | |
| b | Small integer |
| void bignum_deinit | ( | struct bignum * | n | ) |
| int bignum_exptmod | ( | const struct bignum * | a, | |
| const struct bignum * | b, | |||
| const struct bignum * | c, | |||
| struct bignum * | d | |||
| ) |
Modular exponentiation: d = a^b (mod c).
| a | Bignum from bignum_init(); base | |
| b | Bignum from bignum_init(); exponent | |
| c | Bignum from bignum_init(); modulus | |
| d | Bignum from bignum_init(); used to store the result of a^b (mod c) |
Definition at line 234 of file bignum.c.

| int bignum_get_unsigned_bin | ( | const struct bignum * | n, | |
| u8 * | buf, | |||
| size_t * | len | |||
| ) |
Set binary buffer to unsigned bignum.
| n | Bignum from bignum_init() | |
| buf | Buffer for the binary number | |
| len | Length of the buffer, can be NULL if buffer is known to be long enough. Set to used buffer length on success if not NULL. |
Definition at line 86 of file bignum.c.

| size_t bignum_get_unsigned_bin_len | ( | struct bignum * | n | ) |
Get length of bignum as an unsigned binary buffer.
| n | Bignum from bignum_init() |
| struct bignum* bignum_init | ( | void | ) | [read] |
| int bignum_mul | ( | const struct bignum * | a, | |
| const struct bignum * | b, | |||
| struct bignum * | c | |||
| ) |
c = a * b
| a | Bignum from bignum_init() | |
| b | Bignum from bignum_init() | |
| c | Bignum from bignum_init(); used to store the result of a * b |
Definition at line 193 of file bignum.c.

| int bignum_mulmod | ( | const struct bignum * | a, | |
| const struct bignum * | b, | |||
| const struct bignum * | c, | |||
| struct bignum * | d | |||
| ) |
d = a * b (mod c)
| a | Bignum from bignum_init() | |
| b | Bignum from bignum_init() | |
| c | Bignum from bignum_init(); modulus | |
| d | Bignum from bignum_init(); used to store the result of a * b (mod c) |
Definition at line 213 of file bignum.c.

| int bignum_set_unsigned_bin | ( | struct bignum * | n, | |
| const u8 * | buf, | |||
| size_t | len | |||
| ) |
Set bignum based on unsigned binary buffer.
| n | Bignum from bignum_init(); to be set to the given value | |
| buf | Buffer with unsigned binary value | |
| len | Length of buf in octets |
Definition at line 111 of file bignum.c.

| int bignum_sub | ( | const struct bignum * | a, | |
| const struct bignum * | b, | |||
| struct bignum * | c | |||
| ) |
c = a - b
| a | Bignum from bignum_init() | |
| b | Bignum from bignum_init() | |
| c | Bignum from bignum_init(); used to store the result of a - b |
Definition at line 174 of file bignum.c.

1.6.1