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 program is free software; you can redistribute it and/or modify
      6  * it under the terms of the GNU General Public License version 2 as
      7  * published by the Free Software Foundation.
      8  *
      9  * Alternatively, this software may be distributed under the terms of BSD
     10  * license.
     11  *
     12  * See README and COPYING for more details.
     13  */
     14 
     15 #ifndef BIGNUM_H
     16 #define BIGNUM_H
     17 
     18 struct bignum;
     19 
     20 struct bignum * bignum_init(void);
     21 void bignum_deinit(struct bignum *n);
     22 size_t bignum_get_unsigned_bin_len(struct bignum *n);
     23 int bignum_get_unsigned_bin(const struct bignum *n, u8 *buf, size_t *len);
     24 int bignum_set_unsigned_bin(struct bignum *n, const u8 *buf, size_t len);
     25 int bignum_cmp(const struct bignum *a, const struct bignum *b);
     26 int bignum_cmp_d(const struct bignum *a, unsigned long b);
     27 int bignum_add(const struct bignum *a, const struct bignum *b,
     28 	       struct bignum *c);
     29 int bignum_sub(const struct bignum *a, const struct bignum *b,
     30 	       struct bignum *c);
     31 int bignum_mul(const struct bignum *a, const struct bignum *b,
     32 	       struct bignum *c);
     33 int bignum_mulmod(const struct bignum *a, const struct bignum *b,
     34 		  const struct bignum *c, struct bignum *d);
     35 int bignum_exptmod(const struct bignum *a, const struct bignum *b,
     36 		   const struct bignum *c, struct bignum *d);
     37 
     38 #endif /* BIGNUM_H */
     39