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, tomstdenis@gmail.com, http://libtomcrypt.com
10 */
11#include "tomcrypt.h"
12
13#ifdef MPI
14#include <stdarg.h>
15
16int 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
44void 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 $ */
62