82 lines
1.4 KiB
C
82 lines
1.4 KiB
C
/* LibTomCrypt, modular cryptographic library -- Tom St Denis */
|
|
/* SPDX-License-Identifier: Unlicense */
|
|
#include "tomcrypt_private.h"
|
|
|
|
/**
|
|
@file crypt_inits.c
|
|
|
|
Provide math library functions for dynamic languages
|
|
like Python - Larry Bugbee, February 2013
|
|
*/
|
|
|
|
|
|
#ifdef LTM_DESC
|
|
void init_LTM(void)
|
|
{
|
|
ltc_mp = ltm_desc;
|
|
}
|
|
#endif
|
|
|
|
#ifdef TFM_DESC
|
|
void init_TFM(void)
|
|
{
|
|
ltc_mp = tfm_desc;
|
|
}
|
|
#endif
|
|
|
|
#ifdef GMP_DESC
|
|
void init_GMP(void)
|
|
{
|
|
ltc_mp = gmp_desc;
|
|
}
|
|
#endif
|
|
|
|
int crypt_mp_init(const char* mpi)
|
|
{
|
|
if (mpi == NULL) return CRYPT_ERROR;
|
|
switch (mpi[0]) {
|
|
#ifdef LTM_DESC
|
|
case 'l':
|
|
case 'L':
|
|
ltc_mp = ltm_desc;
|
|
return CRYPT_OK;
|
|
#endif
|
|
#ifdef TFM_DESC
|
|
case 't':
|
|
case 'T':
|
|
ltc_mp = tfm_desc;
|
|
return CRYPT_OK;
|
|
#endif
|
|
#ifdef GMP_DESC
|
|
case 'g':
|
|
case 'G':
|
|
ltc_mp = gmp_desc;
|
|
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;
|
|
}
|
|
}
|
|
|