comparison libtomcrypt/src/math/multi.c @ 511:582cb38e4eb5 insecure-nocrypto

propagate from branch 'au.asn.ucc.matt.dropbear' (head cdcc3c729e29544e8b98a408e2dc60e4483dfd2a) to branch 'au.asn.ucc.matt.dropbear.insecure-nocrypto' (head 0ca38a1cf349f7426ac9de34ebe4c3e3735effab)
author Matt Johnston <matt@ucc.asn.au>
date Thu, 06 Nov 2008 13:16:55 +0000
parents 0cbe8f6dbf9e
children f849a5ca2efc
comparison
equal deleted inserted replaced
361:461c4b1fb35f 511:582cb38e4eb5
1 /* LibTomCrypt, modular cryptographic library -- Tom St Denis
2 *
3 * LibTomCrypt is a library that provides various cryptographic
4 * algorithms in a highly modular and flexible manner.
5 *
6 * The library is free for all purposes without any express
7 * guarantee it works.
8 *
9 * Tom St Denis, [email protected], http://libtomcrypt.com
10 */
11 #include "tomcrypt.h"
12
13 #ifdef MPI
14 #include <stdarg.h>
15
16 int ltc_init_multi(void **a, ...)
17 {
18 void **cur = a;
19 int np = 0;
20 va_list args;
21
22 va_start(args, a);
23 while (cur != NULL) {
24 if (mp_init(cur) != CRYPT_OK) {
25 /* failed */
26 va_list clean_list;
27
28 va_start(clean_list, a);
29 cur = a;
30 while (np--) {
31 mp_clear(*cur);
32 cur = va_arg(clean_list, void**);
33 }
34 va_end(clean_list);
35 return CRYPT_MEM;
36 }
37 ++np;
38 cur = va_arg(args, void**);
39 }
40 va_end(args);
41 return CRYPT_OK;
42 }
43
44 void ltc_deinit_multi(void *a, ...)
45 {
46 void *cur = a;
47 va_list args;
48
49 va_start(args, a);
50 while (cur != NULL) {
51 mp_clear(cur);
52 cur = va_arg(args, void *);
53 }
54 va_end(args);
55 }
56
57 #endif
58
59 /* $Source: /cvs/libtom/libtomcrypt/src/math/multi.c,v $ */
60 /* $Revision: 1.5 $ */
61 /* $Date: 2006/03/31 14:15:35 $ */