mpi_to_ltc_error.c 916 B

123456789101112131415161718192021222324252627282930313233343536
  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.org
  10. */
  11. #include "mycrypt.h"
  12. #ifdef MPI
  13. static const struct {
  14. int mpi_code, ltc_code;
  15. } mpi_to_ltc_codes[] = {
  16. { MP_OKAY , CRYPT_OK},
  17. { MP_MEM , CRYPT_MEM},
  18. { MP_VAL , CRYPT_INVALID_ARG},
  19. };
  20. /* convert a MPI error to a LTC error (Possibly the most powerful function ever! Oh wait... no) */
  21. int mpi_to_ltc_error(int err)
  22. {
  23. int x;
  24. for (x = 0; x < (int)(sizeof(mpi_to_ltc_codes)/sizeof(mpi_to_ltc_codes[0])); x++) {
  25. if (err == mpi_to_ltc_codes[x].mpi_code) {
  26. return mpi_to_ltc_codes[x].ltc_code;
  27. }
  28. }
  29. return CRYPT_ERROR;
  30. }
  31. #endif