comparison bn_mp_clear.c @ 142:d29b64170cf0 libtommath-orig

import of libtommath 0.32
author Matt Johnston <matt@ucc.asn.au>
date Sun, 19 Dec 2004 11:33:56 +0000
parents 86e0b50a9b58
children 8e94663164c6
comparison
equal deleted inserted replaced
19:e1037a1e12e7 142:d29b64170cf0
1 #include <tommath.h>
2 #ifdef BN_MP_CLEAR_C
1 /* LibTomMath, multiple-precision integer library -- Tom St Denis 3 /* LibTomMath, multiple-precision integer library -- Tom St Denis
2 * 4 *
3 * LibTomMath is a library that provides multiple-precision 5 * LibTomMath is a library that provides multiple-precision
4 * integer arithmetic as well as number theoretic functionality. 6 * integer arithmetic as well as number theoretic functionality.
5 * 7 *
10 * The library is free for all purposes without any express 12 * The library is free for all purposes without any express
11 * guarantee it works. 13 * guarantee it works.
12 * 14 *
13 * Tom St Denis, [email protected], http://math.libtomcrypt.org 15 * Tom St Denis, [email protected], http://math.libtomcrypt.org
14 */ 16 */
15 #include <tommath.h>
16 17
17 /* clear one (frees) */ 18 /* clear one (frees) */
18 void 19 void
19 mp_clear (mp_int * a) 20 mp_clear (mp_int * a)
20 { 21 {
22 int i;
23
21 /* only do anything if a hasn't been freed previously */ 24 /* only do anything if a hasn't been freed previously */
22 if (a->dp != NULL) { 25 if (a->dp != NULL) {
23 /* first zero the digits */ 26 /* first zero the digits */
24 memset (a->dp, 0, sizeof (mp_digit) * a->used); 27 for (i = 0; i < a->used; i++) {
28 a->dp[i] = 0;
29 }
25 30
26 /* free ram */ 31 /* free ram */
27 XFREE(a->dp); 32 XFREE(a->dp);
28 33
29 /* reset members to make debugging easier */ 34 /* reset members to make debugging easier */
30 a->dp = NULL; 35 a->dp = NULL;
31 a->alloc = a->used = 0; 36 a->alloc = a->used = 0;
32 a->sign = MP_ZPOS; 37 a->sign = MP_ZPOS;
33 } 38 }
34 } 39 }
40 #endif