diff options
Diffstat (limited to 'libtommath/bn_mp_fwrite.c')
| -rw-r--r-- | libtommath/bn_mp_fwrite.c | 48 | 
1 files changed, 48 insertions, 0 deletions
diff --git a/libtommath/bn_mp_fwrite.c b/libtommath/bn_mp_fwrite.c new file mode 100644 index 0000000..b0ec29e --- /dev/null +++ b/libtommath/bn_mp_fwrite.c @@ -0,0 +1,48 @@ +#include <tommath.h> +#ifdef BN_MP_FWRITE_C +/* LibTomMath, multiple-precision integer library -- Tom St Denis + * + * LibTomMath is a library that provides multiple-precision + * integer arithmetic as well as number theoretic functionality. + * + * 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 + * guarantee it works. + * + * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.com + */ + +int mp_fwrite(mp_int *a, int radix, FILE *stream) +{ +   char *buf; +   int err, len, x; +    +   if ((err = mp_radix_size(a, radix, &len)) != MP_OKAY) { +      return err; +   } + +   buf = OPT_CAST(char) XMALLOC (len); +   if (buf == NULL) { +      return MP_MEM; +   } +    +   if ((err = mp_toradix(a, buf, radix)) != MP_OKAY) { +      XFREE (buf); +      return err; +   } +    +   for (x = 0; x < len; x++) { +       if (fputc(buf[x], stream) == EOF) { +          XFREE (buf); +          return MP_VAL; +       } +   } +    +   XFREE (buf); +   return MP_OKAY; +} + +#endif  | 
