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