16d49e1aeSJan Lentfer /* 26d49e1aeSJan Lentfer * Big number math 36d49e1aeSJan Lentfer * Copyright (c) 2006, Jouni Malinen <j@w1.fi> 46d49e1aeSJan Lentfer * 5*3ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license. 6*3ff40c12SJohn Marino * See README for more details. 76d49e1aeSJan Lentfer */ 86d49e1aeSJan Lentfer 96d49e1aeSJan Lentfer #ifndef BIGNUM_H 106d49e1aeSJan Lentfer #define BIGNUM_H 116d49e1aeSJan Lentfer 126d49e1aeSJan Lentfer struct bignum; 136d49e1aeSJan Lentfer 146d49e1aeSJan Lentfer struct bignum * bignum_init(void); 156d49e1aeSJan Lentfer void bignum_deinit(struct bignum *n); 166d49e1aeSJan Lentfer size_t bignum_get_unsigned_bin_len(struct bignum *n); 176d49e1aeSJan Lentfer int bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len); 186d49e1aeSJan Lentfer int bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len); 196d49e1aeSJan Lentfer int bignum_cmp(const struct bignum *a, const struct bignum *b); 206d49e1aeSJan Lentfer int bignum_cmp_d(const struct bignum *a, unsigned long b); 216d49e1aeSJan Lentfer int bignum_add(const struct bignum *a, const struct bignum *b, 226d49e1aeSJan Lentfer struct bignum *c); 236d49e1aeSJan Lentfer int bignum_sub(const struct bignum *a, const struct bignum *b, 246d49e1aeSJan Lentfer struct bignum *c); 256d49e1aeSJan Lentfer int bignum_mul(const struct bignum *a, const struct bignum *b, 266d49e1aeSJan Lentfer struct bignum *c); 276d49e1aeSJan Lentfer int bignum_mulmod(const struct bignum *a, const struct bignum *b, 286d49e1aeSJan Lentfer const struct bignum *c, struct bignum *d); 296d49e1aeSJan Lentfer int bignum_exptmod(const struct bignum *a, const struct bignum *b, 306d49e1aeSJan Lentfer const struct bignum *c, struct bignum *d); 316d49e1aeSJan Lentfer 326d49e1aeSJan Lentfer #endif /* BIGNUM_H */ 33