add crypt_mp_init()

This commit is contained in:
Steffen Jaeckel 2017-10-12 10:20:43 +02:00
parent fdc6cd2013
commit 735566993b
4 changed files with 51 additions and 80 deletions

View file

@ -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));

View file

@ -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

View file

@ -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$ */

View file

@ -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);