Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 1997 - 2005 Pekka Riikonen
+ Copyright (C) 1997 - 2008 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#endif /* SILC_DIST_TFM */
#endif
-/****d* silcmath/SilcMPAPI/SilcMPInt
+/****d* silcmath/SilcMPInt
*
* NAME
*
typedef SILC_MP_INT SilcMPInt;
/***/
-/****f* silcmath/SilcMPAPI/silc_mp_init
+/****f* silcmath/silc_mp_init
*
* SYNOPSIS
*
*
* DESCRIPTION
*
- * Initializes the SilcMPInt *that is the actual MP Integer.
+ * Initializes the SilcMPInt that is the actual MP Integer.
* This must be called before any of the silc_mp_ routines can be
* used. The integer is uninitialized with the silc_mp_uninit function.
*
***/
void silc_mp_init(SilcMPInt *mp);
-/****f* silcmath/SilcMPAPI/silc_mp_sinit
+/****f* silcmath/silc_mp_sinit
*
* SYNOPSIS
*
*
* DESCRIPTION
*
- * Initializes the SilcMPInt *that is the actual MP Integer.
+ * Initializes the SilcMPInt that is the actual MP Integer.
* This must be called before any of the silc_mp_ routines can be
- * used. The integer is uninitialized with the silc_mp_uninit function.
- * This routine is equivalent to silc_mp_init but allocates the memory
- * from `stack'.
- *
- * NOTES
- *
- * The `stack' is saved into the `mp' for the duration of the existence
- * of `mp'. This means that `stack' must not become invalid while `mp'
- * is used. It also means that any routine that may need memory allocation
- * to for example enlarge `mp' will allocate the memory from `stack'.
+ * used. The integer is uninitialized with the silc_mp_suninit function.
+ * If `stack' is non-NULL it will be used as the memory source. If it
+ * is NULL, this call is equivalent to silc_mp_init.
*
***/
SilcBool silc_mp_sinit(SilcStack stack, SilcMPInt *mp);
-/****f* silcmath/SilcMPAPI/silc_mp_uninit
+/****f* silcmath/silc_mp_uninit
*
* SYNOPSIS
*
***/
void silc_mp_uninit(SilcMPInt *mp);
-/****f* silcmath/SilcMPAPI/silc_mp_size
+/****f* silcmath/silc_mp_suninit
+ *
+ * SYNOPSIS
+ *
+ * void silc_mp_suninit(SilcStack stack, SilcMPInt *mp);
+ *
+ * DESCRIPTION
+ *
+ * Uninitializes the MP Integer.
+ *
+ ***/
+void silc_mp_suninit(SilcStack stack, SilcMPInt *mp);
+
+/****f* silcmath/silc_mp_size
*
* SYNOPSIS
*
***/
size_t silc_mp_size(SilcMPInt *mp);
-/****f* silcmath/SilcMPAPI/silc_mp_sizeinbase
+/****f* silcmath/silc_mp_sizeinbase
*
* SYNOPSIS
*
***/
size_t silc_mp_sizeinbase(SilcMPInt *mp, int base);
-/****f* silcmath/SilcMPAPI/silc_mp_set
+/****f* silcmath/silc_mp_set
*
* SYNOPSIS
*
***/
void silc_mp_set(SilcMPInt *dst, SilcMPInt *src);
-/****f* silcmath/SilcMPAPI/silc_mp_set_ui
+/****f* silcmath/silc_mp_set_ui
*
* SYNOPSIS
*
***/
void silc_mp_set_ui(SilcMPInt *dst, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_set_si
+/****f* silcmath/silc_mp_set_si
*
* SYNOPSIS
*
***/
void silc_mp_set_si(SilcMPInt *dst, SilcInt32 si);
-/****f* silcmath/SilcMPAPI/silc_mp_set_str
+/****f* silcmath/silc_mp_set_str
*
* SYNOPSIS
*
***/
void silc_mp_set_str(SilcMPInt *dst, const char *str, int base);
-/****f* silcmath/SilcMPAPI/silc_mp_get_ui
+/****f* silcmath/silc_mp_get_ui
*
* SYNOPSIS
*
***/
SilcUInt32 silc_mp_get_ui(SilcMPInt *mp);
-/****f* silcmath/SilcMPAPI/silc_mp_get_str
+/****f* silcmath/silc_mp_get_str
*
* SYNOPSIS
*
***/
char *silc_mp_get_str(char *str, SilcMPInt *mp, int base);
-/****f* silcmath/SilcMPAPI/silc_mp_add
+/****f* silcmath/silc_mp_add
*
* SYNOPSIS
*
***/
void silc_mp_add(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_add_ui
+/****f* silcmath/silc_mp_add_ui
*
* SYNOPSIS
*
***/
void silc_mp_add_ui(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_sub
+/****f* silcmath/silc_mp_sub
*
* SYNOPSIS
*
***/
void silc_mp_sub(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_sub_ui
+/****f* silcmath/silc_mp_sub_ui
*
* SYNOPSIS
*
***/
void silc_mp_sub_ui(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_mul
+/****f* silcmath/silc_mp_mul
*
* SYNOPSIS
*
***/
void silc_mp_mul(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_mul_ui
+/****f* silcmath/silc_mp_mul_ui
*
* SYNOPSIS
*
***/
void silc_mp_mul_ui(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_mul_2exp
+/****f* silcmath/silc_mp_mul_2exp
*
* SYNOPSIS
*
***/
void silc_mp_mul_2exp(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 exp);
-/****f* silcmath/SilcMPAPI/silc_mp_sqrt
+/****f* silcmath/silc_mp_sqrt
*
* SYNOPSIS
*
***/
void silc_mp_sqrt(SilcMPInt *dst, SilcMPInt *src);
-/****f* silcmath/SilcMPAPI/silc_mp_div
+/****f* silcmath/silc_mp_div
*
* SYNOPSIS
*
***/
void silc_mp_div(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_div_ui
+/****f* silcmath/silc_mp_div_ui
*
* SYNOPSIS
*
***/
void silc_mp_div_ui(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_div_qr
+/****f* silcmath/silc_mp_div_qr
*
* SYNOPSIS
*
void silc_mp_div_qr(SilcMPInt *q, SilcMPInt *r, SilcMPInt *mp1,
SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_div_2exp
+/****f* silcmath/silc_mp_div_2exp
*
* SYNOPSIS
*
***/
void silc_mp_div_2exp(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 exp);
-/****f* silcmath/SilcMPAPI/silc_mp_div_2exp_qr
+/****f* silcmath/silc_mp_div_2exp_qr
*
* SYNOPSIS
*
void silc_mp_div_2exp_qr(SilcMPInt *q, SilcMPInt *r, SilcMPInt *mp1,
SilcUInt32 exp);
-/****f* silcmath/SilcMPAPI/silc_mp_mod
+/****f* silcmath/silc_mp_mod
*
* SYNOPSIS
*
***/
void silc_mp_mod(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_mod_ui
+/****f* silcmath/silc_mp_mod_ui
*
* SYNOPSIS
*
***/
void silc_mp_mod_ui(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_mod_2exp
+/****f* silcmath/silc_mp_mod_2exp
*
* SYNOPSIS
*
***/
void silc_mp_mod_2exp(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_pow
+/****f* silcmath/silc_mp_pow
*
* SYNOPSIS
*
***/
void silc_mp_pow(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *exp);
-/****f* silcmath/SilcMPAPI/silc_mp_pow_ui
+/****f* silcmath/silc_mp_pow_ui
*
* SYNOPSIS
*
***/
void silc_mp_pow_ui(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 exp);
-/****f* silcmath/SilcMPAPI/silc_mp_pow_mod
+/****f* silcmath/silc_mp_pow_mod
*
* SYNOPSIS
*
void silc_mp_pow_mod(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *exp,
SilcMPInt *mod);
-/****f* silcmath/SilcMPAPI/silc_mp_pow_mod_ui
+/****f* silcmath/silc_mp_pow_mod_ui
*
* SYNOPSIS
*
void silc_mp_pow_mod_ui(SilcMPInt *dst, SilcMPInt *mp1, SilcUInt32 exp,
SilcMPInt *mod);
-/****f* silcmath/SilcMPAPI/silc_mp_modinv
+/****f* silcmath/silc_mp_modinv
*
* SYNOPSIS
*
***/
void silc_mp_modinv(SilcMPInt *inv, SilcMPInt *a, SilcMPInt *n);
-/****f* silcmath/SilcMPAPI/silc_mp_gcd
+/****f* silcmath/silc_mp_gcd
*
* SYNOPSIS
*
***/
void silc_mp_gcd(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_gcdext
+/****f* silcmath/silc_mp_gcdext
*
* SYNOPSIS
*
void silc_mp_gcdext(SilcMPInt *g, SilcMPInt *s, SilcMPInt *t, SilcMPInt *mp1,
SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_cmp
+/****f* silcmath/silc_mp_cmp
*
* SYNOPSIS
*
***/
int silc_mp_cmp(SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_cmp_si
+/****f* silcmath/silc_mp_cmp_si
*
* SYNOPSIS
*
***/
int silc_mp_cmp_si(SilcMPInt *mp1, SilcInt32 si);
-/****f* silcmath/SilcMPAPI/silc_mp_cmp_ui
+/****f* silcmath/silc_mp_cmp_ui
*
* SYNOPSIS
*
***/
int silc_mp_cmp_ui(SilcMPInt *mp1, SilcUInt32 ui);
-/****f* silcmath/SilcMPAPI/silc_mp_mp2bin
+/****f* silcmath/silc_mp_mp2bin
*
* SYNOPSIS
*
unsigned char *silc_mp_mp2bin(SilcMPInt *val, SilcUInt32 len,
SilcUInt32 *ret_len);
-/****f* silcmath/SilcMPAPI/silc_mp_mp2bin_noalloc
+/****f* silcmath/silc_mp_mp2bin_noalloc
*
* SYNOPSIS
*
* DESCRIPTION
*
* Same as silc_mp_mp2bin but does not allocate any memory. The
- * encoded data is returned into `dst' and it's length to the `ret_len'.
+ * encoded data is returned into `dst' of size of `dst_len'.
*
***/
void silc_mp_mp2bin_noalloc(SilcMPInt *val, unsigned char *dst,
SilcUInt32 dst_len);
-/****f* silcmath/SilcMPAPI/silc_mp_bin2mp
+/****f* silcmath/silc_mp_bin2mp
*
* SYNOPSIS
*
***/
void silc_mp_bin2mp(unsigned char *data, SilcUInt32 len, SilcMPInt *ret);
-/****f* silcmath/SilcMPAPI/silc_mp_abs
+/****f* silcmath/silc_mp_abs
*
* SYNOPSIS
*
***/
void silc_mp_abs(SilcMPInt *dst, SilcMPInt *src);
-/****f* silcmath/SilcMPAPI/silc_mp_neg
+/****f* silcmath/silc_mp_neg
*
* SYNOPSIS
*
***/
void silc_mp_neg(SilcMPInt *dst, SilcMPInt *src);
-/****f* silcmath/SilcMPAPI/silc_mp_and
+/****f* silcmath/silc_mp_and
*
* SYNOPSIS
*
***/
void silc_mp_and(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_or
+/****f* silcmath/silc_mp_or
*
* SYNOPSIS
*
***/
void silc_mp_or(SilcMPInt *dst, SilcMPInt *mp1, SilcMPInt *mp2);
-/****f* silcmath/SilcMPAPI/silc_mp_xor
+/****f* silcmath/silc_mp_xor
*
* SYNOPSIS
*