Browse Source

add crypt_mp_init()

Steffen Jaeckel 8 years ago
parent
commit
735566993b
4 changed files with 51 additions and 80 deletions
  1. 1 40
      demos/timing.c
  2. 1 0
      src/headers/tomcrypt_misc.h
  3. 48 0
      src/misc/crypt/crypt_inits.c
  4. 1 40
      tests/test.c

+ 1 - 40
demos/timing.c

@@ -1399,45 +1399,6 @@ static void time_encmacs(void)
    time_encmacs_(32);
 }
 
-static void init_mpi(const char* mpi)
-{
-   switch (mpi[0]) {
-#ifdef LTM_DESC
-      case 'l':
-         init_LTM();
-         break;
-#endif
-#ifdef TFM_DESC
-      case 't':
-         init_TFM();
-         break;
-#endif
-#ifdef GMP_DESC
-      case 'g':
-         init_GMP();
-         break;
-#endif
-#ifdef EXT_MATH_LIB
-      case 'e':
-         {
-            extern ltc_math_descriptor EXT_MATH_LIB;
-            ltc_mp = EXT_MATH_LIB;
-         }
-
-#define NAME_VALUE(s) #s"="NAME(s)
-#define NAME(s) #s
-         printf("EXT_MATH_LIB = %s\n", NAME_VALUE(EXT_MATH_LIB));
-#undef NAME_VALUE
-#undef NAME
-
-         break;
-#endif
-      default:
-         printf("Unknown/Invalid MPI provider: %s\n", mpi);
-         break;
-   }
-}
-
 #define LTC_TEST_FN(f)  { f, #f }
 int main(int argc, char **argv)
 {
@@ -1488,7 +1449,7 @@ register_all_prngs();
       mpi_provider = argv[2];
    }
 
-   init_mpi(mpi_provider);
+   crypt_mp_init(mpi_provider);
 
 if ((err = rng_make_prng(128, find_prng("yarrow"), &yarrow_prng, NULL)) != CRYPT_OK) {
    fprintf(stderr, "rng_make_prng failed: %s\n", error_to_string(err));

+ 1 - 0
src/headers/tomcrypt_misc.h

@@ -81,6 +81,7 @@ void init_TFM(void);
 #ifdef GMP_DESC
 void init_GMP(void);
 #endif
+int crypt_mp_init(const char* mpi);
 
 #ifdef LTC_ADLER32
 typedef struct adler32_state_s

+ 48 - 0
src/misc/crypt/crypt_inits.c

@@ -37,6 +37,54 @@ void init_GMP(void)
 }
 #endif
 
+int crypt_mp_init(const char* mpi)
+{
+   if (mpi == NULL) return CRYPT_ERROR;
+   switch (mpi[0]) {
+#ifdef LTM_DESC
+      case 'l':
+      case 'L':
+         init_LTM();
+         return CRYPT_OK;
+#endif
+#ifdef TFM_DESC
+      case 't':
+      case 'T':
+         init_TFM();
+         return CRYPT_OK;
+#endif
+#ifdef GMP_DESC
+      case 'g':
+      case 'G':
+         init_GMP();
+         return CRYPT_OK;
+#endif
+#ifdef EXT_MATH_LIB
+      case 'e':
+      case 'E':
+         {
+            extern ltc_math_descriptor EXT_MATH_LIB;
+            ltc_mp = EXT_MATH_LIB;
+         }
+
+#if defined(LTC_TEST_DBG)
+#define NAME_VALUE(s) #s"="NAME(s)
+#define NAME(s) #s
+         printf("EXT_MATH_LIB = %s\n", NAME_VALUE(EXT_MATH_LIB));
+#undef NAME_VALUE
+#undef NAME
+#endif
+
+         return CRYPT_OK;
+#endif
+      default:
+#if defined(LTC_TEST_DBG)
+         printf("Unknown/Invalid MPI provider: %s\n", mpi);
+#endif
+         return CRYPT_ERROR;
+   }
+}
+
 
 /* ref:         $Format:%D$ */
 /* git commit:  $Format:%H$ */

+ 1 - 40
tests/test.c

@@ -292,45 +292,6 @@ static void register_algs(void)
    }
 }
 
-static void init_mpi(const char* mpi)
-{
-   switch (mpi[0]) {
-#ifdef LTM_DESC
-      case 'l':
-         init_LTM();
-         break;
-#endif
-#ifdef TFM_DESC
-      case 't':
-         init_TFM();
-         break;
-#endif
-#ifdef GMP_DESC
-      case 'g':
-         init_GMP();
-         break;
-#endif
-#ifdef EXT_MATH_LIB
-      case 'e':
-         {
-            extern ltc_math_descriptor EXT_MATH_LIB;
-            ltc_mp = EXT_MATH_LIB;
-         }
-
-#define NAME_VALUE(s) #s"="NAME(s)
-#define NAME(s) #s
-         printf("EXT_MATH_LIB = %s\n", NAME_VALUE(EXT_MATH_LIB));
-#undef NAME_VALUE
-#undef NAME
-
-         break;
-#endif
-      default:
-         printf("Unknown/Invalid MPI provider: %s\n", mpi);
-         break;
-   }
-}
-
 int main(int argc, char **argv)
 {
 #ifdef LTC_PTHREAD
@@ -360,7 +321,7 @@ int main(int argc, char **argv)
       mpi_provider = argv[2];
    }
 
-   init_mpi(mpi_provider);
+   crypt_mp_init(mpi_provider);
 
    if (ltc_mp.name != NULL) {
       printf("MP_PROVIDER  = %s\n", ltc_mp.name);