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