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