+#include <tommath.h>
+#ifdef BN_MP_INIT_C
/* LibTomMath, multiple-precision integer library -- Tom St Denis
*
- * LibTomMath is library that provides for multiple-precision
+ * LibTomMath is a library that provides multiple-precision
* integer arithmetic as well as number theoretic functionality.
*
- * The library is designed directly after the MPI library by
- * Michael Fromberger but has been written from scratch with
+ * The library was designed directly after the MPI library by
+ * Michael Fromberger but has been written from scratch with
* additional optimizations in place.
*
* The library is free for all purposes without any express
*
* Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org
*/
-#include <tommath.h>
-/* init a new bigint */
-int
-mp_init (mp_int * a)
+/* init a new mp_int */
+int mp_init (mp_int * a)
{
- /* allocate ram required and clear it */
- a->dp = OPT_CAST calloc (sizeof (mp_digit), MP_PREC);
+ int i;
+
+ /* allocate memory required and clear it */
+ a->dp = OPT_CAST(mp_digit) XMALLOC (sizeof (mp_digit) * MP_PREC);
if (a->dp == NULL) {
return MP_MEM;
}
+ /* set the digits to zero */
+ for (i = 0; i < MP_PREC; i++) {
+ a->dp[i] = 0;
+ }
+
/* set the used to zero, allocated digits to the default precision
* and sign to positive */
a->used = 0;
return MP_OKAY;
}
+#endif