api

bignum.ch

Declarations in bignum.ch

1 declarationstls

Declarations

Public only
tls#
Publicnamespace
namespace tls
Port of mbedTLS bignum core to Chemical.
Mpi#
Publicstruct
struct Mpi { var s : int var n : size_t var p : u32[512] }
mpi_init#
Publicfunction
func mpi_init(m : *Mpi) : void
mpi_lset#
Publicfunction
func mpi_lset(m : *Mpi, val : i64) : void
mpi_grow#
Publicfunction
func mpi_grow(m : *Mpi, nlimbs : size_t) : int
mpi_trim#
Publicfunction
func mpi_trim(m : *Mpi) : void
mpi_bitlen#
Publicfunction
func mpi_bitlen(m : *Mpi) : size_t
mpi_size#
Publicfunction
func mpi_size(m : *Mpi) : size_t
mpi_copy#
Publicfunction
func mpi_copy(dst : *Mpi, src : *Mpi) : void
mpi_cmp_abs#
Publicfunction
func mpi_cmp_abs(a : *Mpi, b : *Mpi) : int
mpi_cmp#
Publicfunction
func mpi_cmp(a : *Mpi, b : *Mpi) : int
mpi_cmp_int#
Publicfunction
func mpi_cmp_int(m : *Mpi, val : i64) : int
mpi_is_zero#
Publicfunction
func mpi_is_zero(m : *Mpi) : bool
mpi_add_abs#
Publicfunction
func mpi_add_abs(x : *Mpi, a : *Mpi, b : *Mpi) : int
─── Addition / Subtraction ──────────────────────────────────────────
mpi_sub_abs#
Publicfunction
func mpi_sub_abs(x : *Mpi, a : *Mpi, b : *Mpi) : int
mpi_add#
Publicfunction
func mpi_add(x : *Mpi, a : *Mpi, b : *Mpi) : int
mpi_sub#
Publicfunction
func mpi_sub(x : *Mpi, a : *Mpi, b : *Mpi) : int
mpi_mul#
Publicfunction
func mpi_mul(x : *Mpi, a : *Mpi, b : *Mpi) : int
─── Multiplication ──────────────────────────────────────────────────
mpi_mul_int#
Publicfunction
func mpi_mul_int(x : *Mpi, a : *Mpi, b : u32) : int
mpi_div#
Publicfunction
func mpi_div(q : *Mpi, r : *Mpi, a : *Mpi, b : *Mpi) : int
─── Division (schoolbook long division) ─────────────────────────────
mpi_mod#
Publicfunction
func mpi_mod(r : *Mpi, a : *Mpi, b : *Mpi) : int
montgomery_mul#
function
func montgomery_mul(x : *Mpi, a : *Mpi, b : *Mpi, n : *Mpi, n_inv0 : u32) : int
─── Montgomery Modular Exponentiation ───────────────────────────────
to_montgomery#
function
func to_montgomery(x : *Mpi, a : *Mpi, n : *Mpi, n_inv0 : u32, r2 : *Mpi) : int
from_montgomery#
function
func from_montgomery(x : *Mpi, a : *Mpi, n : *Mpi, n_inv0 : u32) : int
compute_r2#
function
func compute_r2(r2 : *Mpi, n : *Mpi) : int
mpi_exp_mod_fallback#
function
func mpi_exp_mod_fallback(x : *Mpi, a : *Mpi, e : *Mpi, n : *Mpi) : int
mpi_exp_mod#
Publicfunction
func mpi_exp_mod(x : *Mpi, a : *Mpi, e : *Mpi, n : *Mpi) : int
mpi_mod_inv#
Publicfunction
func mpi_mod_inv(x : *Mpi, a : *Mpi, n : *Mpi) : int
─── Modular Inverse (Extended Euclidean) ────────────────────────────
mpi_shift_l#
Publicfunction
func mpi_shift_l(m : *Mpi, count : size_t) : int
─── Shift Operations ──────────────────────────────────────────────
mpi_shift_r#
Publicfunction
func mpi_shift_r(m : *Mpi, count : size_t) : int
mpi_read_binary#
Publicfunction
func mpi_read_binary(m : *Mpi, buf : *u8, buflen : size_t) : int
─── Import / Export ────────────────────────────────────────────────
mpi_write_binary#
Publicfunction
func mpi_write_binary(m : *Mpi, buf : *u8, buflen : size_t) : int
mpi_gcd#
Publicfunction
func mpi_gcd(x : *Mpi, a : *Mpi, b : *Mpi) : int