1e5b75505Sopenharmony_ci/* 2e5b75505Sopenharmony_ci * Big number math 3e5b75505Sopenharmony_ci * Copyright (c) 2006, Jouni Malinen <j@w1.fi> 4e5b75505Sopenharmony_ci * 5e5b75505Sopenharmony_ci * This software may be distributed under the terms of the BSD license. 6e5b75505Sopenharmony_ci * See README for more details. 7e5b75505Sopenharmony_ci */ 8e5b75505Sopenharmony_ci 9e5b75505Sopenharmony_ci#ifndef BIGNUM_H 10e5b75505Sopenharmony_ci#define BIGNUM_H 11e5b75505Sopenharmony_ci 12e5b75505Sopenharmony_cistruct bignum; 13e5b75505Sopenharmony_ci 14e5b75505Sopenharmony_cistruct bignum * bignum_init(void); 15e5b75505Sopenharmony_civoid bignum_deinit(struct bignum *n); 16e5b75505Sopenharmony_cisize_t bignum_get_unsigned_bin_len(struct bignum *n); 17e5b75505Sopenharmony_ciint bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len); 18e5b75505Sopenharmony_ciint bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len); 19e5b75505Sopenharmony_ciint bignum_cmp(const struct bignum *a, const struct bignum *b); 20e5b75505Sopenharmony_ciint bignum_cmp_d(const struct bignum *a, unsigned long b); 21e5b75505Sopenharmony_ciint bignum_add(const struct bignum *a, const struct bignum *b, 22e5b75505Sopenharmony_ci struct bignum *c); 23e5b75505Sopenharmony_ciint bignum_sub(const struct bignum *a, const struct bignum *b, 24e5b75505Sopenharmony_ci struct bignum *c); 25e5b75505Sopenharmony_ciint bignum_mul(const struct bignum *a, const struct bignum *b, 26e5b75505Sopenharmony_ci struct bignum *c); 27e5b75505Sopenharmony_ciint bignum_mulmod(const struct bignum *a, const struct bignum *b, 28e5b75505Sopenharmony_ci const struct bignum *c, struct bignum *d); 29e5b75505Sopenharmony_ciint bignum_exptmod(const struct bignum *a, const struct bignum *b, 30e5b75505Sopenharmony_ci const struct bignum *c, struct bignum *d); 31e5b75505Sopenharmony_ci 32e5b75505Sopenharmony_ci#endif /* BIGNUM_H */ 33