2004-01-25 17:40:34 +00:00
|
|
|
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
|
|
|
|
|
*
|
|
|
|
|
* LibTomCrypt is a library that provides various cryptographic
|
|
|
|
|
* algorithms in a highly modular and flexible manner.
|
|
|
|
|
*
|
|
|
|
|
* The library is free for all purposes without any express
|
2004-05-12 20:42:16 +00:00
|
|
|
* guarantee it works.
|
2004-01-25 17:40:34 +00:00
|
|
|
*
|
2007-07-20 17:48:02 +00:00
|
|
|
* Tom St Denis, tomstdenis@gmail.com, http://libtom.org
|
2004-01-25 17:40:34 +00:00
|
|
|
*/
|
2004-12-30 23:55:53 +00:00
|
|
|
#include "tomcrypt.h"
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@file crypt.c
|
|
|
|
|
Build strings, Tom St Denis
|
2014-03-04 21:28:16 +01:00
|
|
|
*/
|
2015-09-08 21:09:49 +02:00
|
|
|
#define NAME_VALUE(s) #s"="NAME(s)
|
|
|
|
|
#define NAME(s) #s
|
2003-03-03 00:59:24 +00:00
|
|
|
|
2003-12-24 18:59:57 +00:00
|
|
|
const char *crypt_build_settings =
|
2004-12-30 23:55:53 +00:00
|
|
|
"LibTomCrypt " SCRYPT " (Tom St Denis, tomstdenis@gmail.com)\n"
|
|
|
|
|
"LibTomCrypt is public domain software.\n"
|
2015-05-07 10:32:12 +02:00
|
|
|
#if defined(INCLUDE_BUILD_DATE)
|
|
|
|
|
"Built on " __DATE__ " at " __TIME__ "\n"
|
|
|
|
|
#endif
|
|
|
|
|
"\n\nEndianness: "
|
2003-03-03 00:59:24 +00:00
|
|
|
#if defined(ENDIAN_NEUTRAL)
|
2017-02-23 15:44:43 +01:00
|
|
|
"neutral/"
|
|
|
|
|
#endif
|
2015-05-07 10:32:12 +02:00
|
|
|
#if defined(ENDIAN_LITTLE)
|
2003-03-03 00:59:24 +00:00
|
|
|
"little"
|
|
|
|
|
#elif defined(ENDIAN_BIG)
|
|
|
|
|
"big"
|
2015-05-07 10:32:12 +02:00
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
#if defined(ENDIAN_32BITWORD)
|
|
|
|
|
" (32-bit words)\n"
|
2017-02-23 15:44:43 +01:00
|
|
|
#elif defined(ENDIAN_64BITWORD)
|
2003-03-03 00:59:24 +00:00
|
|
|
" (64-bit words)\n"
|
2017-02-23 15:44:43 +01:00
|
|
|
#else
|
|
|
|
|
" (no wordsize defined)\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
|
|
|
|
"Clean stack: "
|
2004-12-30 23:55:53 +00:00
|
|
|
#if defined(LTC_CLEAN_STACK)
|
2003-03-03 00:59:24 +00:00
|
|
|
"enabled\n"
|
|
|
|
|
#else
|
|
|
|
|
"disabled\n"
|
|
|
|
|
#endif
|
|
|
|
|
"Ciphers built-in:\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_BLOWFISH)
|
2003-03-03 00:59:24 +00:00
|
|
|
" Blowfish\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RC2)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RC2\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RC5)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RC5\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RC6)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RC6\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SAFERP)
|
2003-03-03 00:59:24 +00:00
|
|
|
" Safer+\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SAFER)
|
2003-03-03 00:59:24 +00:00
|
|
|
" Safer\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RIJNDAEL)
|
2003-03-03 00:59:24 +00:00
|
|
|
" Rijndael\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_XTEA)
|
2014-04-30 01:10:22 +02:00
|
|
|
" XTEA\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_TWOFISH)
|
2003-03-03 00:59:24 +00:00
|
|
|
" Twofish "
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_TABLES) && defined(LTC_TWOFISH_ALL_TABLES)
|
2004-12-30 23:55:53 +00:00
|
|
|
"(small, tables, all_tables)\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#elif defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_TABLES)
|
2003-03-03 00:59:24 +00:00
|
|
|
"(small, tables)\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#elif defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_ALL_TABLES)
|
2004-12-30 23:55:53 +00:00
|
|
|
"(small, all_tables)\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#elif defined(LTC_TWOFISH_TABLES) && defined(LTC_TWOFISH_ALL_TABLES)
|
2004-12-30 23:55:53 +00:00
|
|
|
"(tables, all_tables)\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#elif defined(LTC_TWOFISH_SMALL)
|
2003-03-03 00:59:24 +00:00
|
|
|
"(small)\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#elif defined(LTC_TWOFISH_TABLES)
|
2003-03-03 00:59:24 +00:00
|
|
|
"(tables)\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#elif defined(LTC_TWOFISH_ALL_TABLES)
|
2004-12-30 23:55:53 +00:00
|
|
|
"(all_tables)\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#else
|
|
|
|
|
"\n"
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_DES)
|
2014-04-30 01:10:22 +02:00
|
|
|
" DES\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_CAST5)
|
2014-04-30 01:10:22 +02:00
|
|
|
" CAST5\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_NOEKEON)
|
2003-03-03 01:02:42 +00:00
|
|
|
" Noekeon\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SKIPJACK)
|
2003-12-24 18:59:57 +00:00
|
|
|
" Skipjack\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_KHAZAD)
|
2004-12-30 23:55:53 +00:00
|
|
|
" Khazad\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_ANUBIS)
|
2004-12-30 23:55:53 +00:00
|
|
|
" Anubis "
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_ANUBIS_TWEAK)
|
2004-12-30 23:55:53 +00:00
|
|
|
" (tweaked)"
|
|
|
|
|
#endif
|
|
|
|
|
"\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_KSEED)
|
2014-04-30 01:10:22 +02:00
|
|
|
" KSEED\n"
|
2006-11-17 14:21:24 +00:00
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_KASUMI)
|
|
|
|
|
" KASUMI\n"
|
|
|
|
|
#endif
|
2009-10-01 11:42:27 +02:00
|
|
|
#if defined(LTC_MULTI2)
|
|
|
|
|
" MULTI2\n"
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_CAMELLIA)
|
|
|
|
|
" Camellia\n"
|
|
|
|
|
#endif
|
2017-03-21 19:42:54 +01:00
|
|
|
#if defined(LTC_CHACHA)
|
|
|
|
|
" ChaCha\n"
|
|
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
|
|
|
|
|
"\nHashes built-in:\n"
|
2017-03-22 21:22:00 +01:00
|
|
|
#if defined(LTC_SHA3)
|
|
|
|
|
" SHA3\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SHA512)
|
2014-04-30 01:10:22 +02:00
|
|
|
" SHA-512\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SHA384)
|
2014-04-30 01:10:22 +02:00
|
|
|
" SHA-384\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2014-08-27 14:38:56 +02:00
|
|
|
#if defined(LTC_SHA512_256)
|
|
|
|
|
" SHA-512/256\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SHA256)
|
2014-04-30 01:10:22 +02:00
|
|
|
" SHA-256\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2014-08-27 14:38:56 +02:00
|
|
|
#if defined(LTC_SHA512_224)
|
|
|
|
|
" SHA-512/224\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SHA224)
|
2014-04-30 01:10:22 +02:00
|
|
|
" SHA-224\n"
|
2003-12-24 18:59:57 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_TIGER)
|
2014-04-30 01:10:22 +02:00
|
|
|
" TIGER\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SHA1)
|
2014-04-30 01:10:22 +02:00
|
|
|
" SHA1\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_MD5)
|
2014-04-30 01:10:22 +02:00
|
|
|
" MD5\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_MD4)
|
2014-04-30 01:10:22 +02:00
|
|
|
" MD4\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_MD2)
|
2014-04-30 01:10:22 +02:00
|
|
|
" MD2\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RIPEMD128)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RIPEMD128\n"
|
2003-09-08 01:06:11 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RIPEMD160)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RIPEMD160\n"
|
2003-12-24 18:59:57 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RIPEMD256)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RIPEMD256\n"
|
2004-05-31 02:36:47 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RIPEMD320)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RIPEMD320\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_WHIRLPOOL)
|
2014-04-30 01:10:22 +02:00
|
|
|
" WHIRLPOOL\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#endif
|
2017-04-07 20:50:28 -04:00
|
|
|
#if defined(LTC_BLAKE2S)
|
|
|
|
|
" BLAKE2S\n"
|
|
|
|
|
#endif
|
2017-04-08 15:40:56 -04:00
|
|
|
#if defined(LTC_BLAKE2B)
|
|
|
|
|
" BLAKE2B\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_CHC_HASH)
|
2014-04-30 01:10:22 +02:00
|
|
|
" CHC_HASH\n"
|
2004-10-30 03:00:26 +00:00
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
|
|
|
|
|
"\nBlock Chaining Modes:\n"
|
2006-08-30 23:30:00 +00:00
|
|
|
#if defined(LTC_CFB_MODE)
|
2003-03-03 00:59:24 +00:00
|
|
|
" CFB\n"
|
|
|
|
|
#endif
|
2006-08-30 23:30:00 +00:00
|
|
|
#if defined(LTC_OFB_MODE)
|
2003-03-03 00:59:24 +00:00
|
|
|
" OFB\n"
|
|
|
|
|
#endif
|
2006-08-30 23:30:00 +00:00
|
|
|
#if defined(LTC_ECB_MODE)
|
2003-03-03 00:59:24 +00:00
|
|
|
" ECB\n"
|
|
|
|
|
#endif
|
2006-08-30 23:30:00 +00:00
|
|
|
#if defined(LTC_CBC_MODE)
|
2003-03-03 00:59:24 +00:00
|
|
|
" CBC\n"
|
|
|
|
|
#endif
|
2006-08-30 23:30:00 +00:00
|
|
|
#if defined(LTC_CTR_MODE)
|
2014-07-16 15:11:14 +02:00
|
|
|
" CTR\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2014-04-30 01:10:22 +02:00
|
|
|
#if defined(LTC_LRW_MODE)
|
|
|
|
|
" LRW"
|
2014-07-17 10:49:05 +02:00
|
|
|
#if defined(LTC_LRW_TABLES)
|
2014-04-30 01:10:22 +02:00
|
|
|
" (tables) "
|
2006-01-26 18:11:56 +00:00
|
|
|
#endif
|
|
|
|
|
"\n"
|
|
|
|
|
#endif
|
2006-06-18 01:37:50 +00:00
|
|
|
#if defined(LTC_F8_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" F8\n"
|
2014-03-04 21:28:16 +01:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_XTS_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" XTS\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
|
2004-08-06 16:42:41 +00:00
|
|
|
"\nMACs:\n"
|
2006-11-17 14:21:24 +00:00
|
|
|
#if defined(LTC_HMAC)
|
2014-04-30 01:10:22 +02:00
|
|
|
" HMAC\n"
|
2004-08-06 16:42:41 +00:00
|
|
|
#endif
|
2006-11-17 14:21:24 +00:00
|
|
|
#if defined(LTC_OMAC)
|
2014-04-30 01:10:22 +02:00
|
|
|
" OMAC\n"
|
2004-08-06 16:42:41 +00:00
|
|
|
#endif
|
2006-11-17 14:21:24 +00:00
|
|
|
#if defined(LTC_PMAC)
|
2004-08-06 16:42:41 +00:00
|
|
|
" PMAC\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_PELICAN)
|
2014-04-30 01:10:22 +02:00
|
|
|
" PELICAN\n"
|
2005-04-17 11:37:13 +00:00
|
|
|
#endif
|
2006-11-17 14:21:24 +00:00
|
|
|
#if defined(LTC_XCBC)
|
2014-04-30 01:10:22 +02:00
|
|
|
" XCBC\n"
|
2006-11-17 14:21:24 +00:00
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_F9_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" F9\n"
|
2006-11-17 14:21:24 +00:00
|
|
|
#endif
|
2017-03-21 19:42:54 +01:00
|
|
|
#if defined(LTC_POLY1305)
|
|
|
|
|
" POLY1305\n"
|
|
|
|
|
#endif
|
2017-04-21 15:50:47 +02:00
|
|
|
#if defined(LTC_BLAKE2SMAC)
|
|
|
|
|
" BLAKE2S MAC\n"
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_BLAKE2BMAC)
|
|
|
|
|
" BLAKE2B MAC\n"
|
|
|
|
|
#endif
|
2004-08-06 16:42:41 +00:00
|
|
|
|
|
|
|
|
"\nENC + AUTH modes:\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_EAX_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" EAX\n"
|
2004-08-06 16:42:41 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_OCB_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" OCB\n"
|
2004-08-06 16:42:41 +00:00
|
|
|
#endif
|
2012-08-05 01:21:13 +02:00
|
|
|
#if defined(LTC_OCB3_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" OCB3\n"
|
2012-08-05 01:21:13 +02:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_CCM_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" CCM\n"
|
2005-04-17 11:37:13 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_GCM_MODE)
|
2014-04-30 01:10:22 +02:00
|
|
|
" GCM"
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_GCM_TABLES)
|
2014-04-30 01:10:22 +02:00
|
|
|
" (tables) "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_GCM_TABLES_SSE2)
|
|
|
|
|
" (SSE2) "
|
2005-04-17 11:37:13 +00:00
|
|
|
#endif
|
|
|
|
|
"\n"
|
2014-04-30 01:10:22 +02:00
|
|
|
#endif
|
2017-03-21 19:42:54 +01:00
|
|
|
#if defined(LTC_CHACHA20POLY1305_MODE)
|
|
|
|
|
" CHACHA20POLY1305\n"
|
|
|
|
|
#endif
|
2004-08-06 16:42:41 +00:00
|
|
|
|
2003-03-03 00:59:24 +00:00
|
|
|
"\nPRNG:\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_YARROW)
|
2015-09-08 21:09:49 +02:00
|
|
|
" Yarrow ("NAME_VALUE(LTC_YARROW_AES)")\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SPRNG)
|
2014-04-30 01:10:22 +02:00
|
|
|
" SPRNG\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_RC4)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RC4\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2017-03-30 20:44:39 +02:00
|
|
|
#if defined(LTC_CHACHA20_PRNG)
|
|
|
|
|
" ChaCha20\n"
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_FORTUNA)
|
2015-09-08 21:09:49 +02:00
|
|
|
" Fortuna (" NAME_VALUE(LTC_FORTUNA_POOLS) ", " NAME_VALUE(LTC_FORTUNA_WD) ")\n"
|
2004-08-06 16:42:41 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_SOBER128)
|
2014-04-30 01:10:22 +02:00
|
|
|
" SOBER128\n"
|
2004-08-06 16:42:41 +00:00
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
|
|
|
|
|
"\nPK Algs:\n"
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_MRSA)
|
2014-04-30 01:10:22 +02:00
|
|
|
" RSA"
|
2015-09-08 21:04:33 +02:00
|
|
|
#if defined(LTC_RSA_BLINDING) && defined(LTC_RSA_CRT_HARDENING)
|
|
|
|
|
" (with blinding and CRT hardening)"
|
|
|
|
|
#elif defined(LTC_RSA_BLINDING)
|
2014-07-12 16:44:28 +02:00
|
|
|
" (with blinding)"
|
2015-09-08 21:04:33 +02:00
|
|
|
#elif defined(LTC_RSA_CRT_HARDENING)
|
|
|
|
|
" (with CRT hardening)"
|
2014-04-30 01:10:22 +02:00
|
|
|
#endif
|
|
|
|
|
"\n"
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_MDH)
|
|
|
|
|
" DH\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_MECC)
|
2014-07-12 16:44:28 +02:00
|
|
|
" ECC"
|
|
|
|
|
#if defined(LTC_ECC_TIMING_RESISTANT)
|
|
|
|
|
" (with blinding)"
|
|
|
|
|
#endif
|
|
|
|
|
"\n"
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_MDSA)
|
2004-01-25 17:40:34 +00:00
|
|
|
" DSA\n"
|
|
|
|
|
#endif
|
2014-07-17 10:49:05 +02:00
|
|
|
#if defined(LTC_MKAT)
|
2005-11-18 05:15:37 +00:00
|
|
|
" Katja\n"
|
2014-03-04 21:28:16 +01:00
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
|
|
|
|
|
"\nCompiler:\n"
|
2014-07-16 15:11:14 +02:00
|
|
|
#if defined(_WIN64)
|
|
|
|
|
" WIN64 platform detected.\n"
|
|
|
|
|
#elif defined(_WIN32)
|
2003-03-03 00:59:24 +00:00
|
|
|
" WIN32 platform detected.\n"
|
|
|
|
|
#endif
|
2005-11-18 05:15:37 +00:00
|
|
|
#if defined(__CYGWIN__)
|
2003-03-03 00:59:24 +00:00
|
|
|
" CYGWIN Detected.\n"
|
|
|
|
|
#endif
|
2005-11-18 05:15:37 +00:00
|
|
|
#if defined(__DJGPP__)
|
2003-03-03 00:59:24 +00:00
|
|
|
" DJGPP Detected.\n"
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(_MSC_VER)
|
|
|
|
|
" MSVC compiler detected.\n"
|
|
|
|
|
#endif
|
Some fixes necessary to support the Clang compiler
First of all, it had a failure in SEED:
LTC_KSEED failed for x=0, I got:
expected actual (ciphertext)
5e == 5e
ba == ba
c6 == c6
e0 == e0
05 != 00
4e != 00
16 != 00
68 != 00
19 == 19
af == af
f1 == f1
cc == cc
6d != 00
34 != 00
6c != 00
db != 00
Since SEED uses the 32H macros, this is really analogous to the
problem I saw with the 64H macros in Camellia with gcc. Not sure why
gcc only had a problem with 64H and not 32H, but since this is an
interaction with the optimizer, it's not going to happen every time
the macro is used (hence why the store tests pass; only when you get
into the complexity of a real cipher do you start having problems) and
it makes sense it will vary from compiler to compiler.
Anyway, I went ahead and added the ability to use __builtin_bswap32,
in addition to __builtin_bswap64, which I already did in a previous
commit. This solves the problem for clang, although I had to add new
logic to detect the bswap builtins in clang, since it has a different
way to detect them than gcc (see the comments in the code). The
detection logic was complicated enough, and applied to both the 32H
and 64H macros, so I factored out the detection logic into
tomcrypt_cfg.h.
2011-09-26 00:39:19 -07:00
|
|
|
#if defined(__clang_version__)
|
|
|
|
|
" Clang compiler " __clang_version__ ".\n"
|
2014-07-12 16:44:28 +02:00
|
|
|
#elif defined(INTEL_CC)
|
|
|
|
|
" Intel C Compiler " __VERSION__ ".\n"
|
|
|
|
|
#elif defined(__GNUC__) /* clang and icc also define __GNUC__ */
|
|
|
|
|
" GCC compiler " __VERSION__ ".\n"
|
2004-05-12 20:42:16 +00:00
|
|
|
#endif
|
2014-07-12 16:44:28 +02:00
|
|
|
|
2005-11-18 05:15:37 +00:00
|
|
|
#if defined(__x86_64__)
|
2004-12-30 23:55:53 +00:00
|
|
|
" x86-64 detected.\n"
|
|
|
|
|
#endif
|
2005-11-18 05:15:37 +00:00
|
|
|
#if defined(LTC_PPC32)
|
2014-07-16 15:11:14 +02:00
|
|
|
" PPC32 detected.\n"
|
2014-03-04 21:28:16 +01:00
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
|
|
|
|
|
"\nVarious others: "
|
2015-08-22 17:29:46 +02:00
|
|
|
#if defined(LTC_ADLER32)
|
|
|
|
|
" ADLER32 "
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_BASE64)
|
2014-04-30 01:10:22 +02:00
|
|
|
" BASE64 "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_BASE64_URL)
|
|
|
|
|
" BASE64-URL-SAFE "
|
|
|
|
|
#endif
|
2015-08-23 22:02:42 +02:00
|
|
|
#if defined(LTC_CRC32)
|
|
|
|
|
" CRC32 "
|
|
|
|
|
#endif
|
2014-04-30 01:10:22 +02:00
|
|
|
#if defined(LTC_DER)
|
|
|
|
|
" DER "
|
|
|
|
|
#endif
|
2015-09-08 21:09:49 +02:00
|
|
|
#if defined(LTC_DER_MAX_PUBKEY_SIZE)
|
|
|
|
|
" " NAME_VALUE(LTC_DER_MAX_PUBKEY_SIZE) " "
|
|
|
|
|
#endif
|
2014-04-30 01:10:22 +02:00
|
|
|
#if defined(LTC_PKCS_1)
|
|
|
|
|
" PKCS#1 "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_PKCS_5)
|
|
|
|
|
" PKCS#5 "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_HKDF)
|
|
|
|
|
" HKDF "
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
|
|
|
|
#if defined(MPI)
|
|
|
|
|
" MPI "
|
|
|
|
|
#endif
|
2015-09-08 21:09:49 +02:00
|
|
|
#if defined(LTC_DEVRANDOM)
|
|
|
|
|
" LTC_DEVRANDOM "
|
|
|
|
|
#endif
|
2014-07-17 10:49:05 +02:00
|
|
|
#if defined(LTC_TRY_URANDOM_FIRST)
|
|
|
|
|
" LTC_TRY_URANDOM_FIRST "
|
2003-03-03 00:59:24 +00:00
|
|
|
#endif
|
2015-09-08 21:09:49 +02:00
|
|
|
#if defined(LTC_RNG_GET_BYTES)
|
|
|
|
|
" LTC_RNG_GET_BYTES "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_RNG_MAKE_PRNG)
|
|
|
|
|
" LTC_RNG_MAKE_PRNG "
|
|
|
|
|
#endif
|
2017-03-15 22:12:49 +01:00
|
|
|
#if defined(LTC_PRNG_ENABLE_LTC_RNG)
|
|
|
|
|
" LTC_PRNG_ENABLE_LTC_RNG "
|
|
|
|
|
#endif
|
2015-09-08 21:09:49 +02:00
|
|
|
#if defined(LTC_HASH_HELPERS)
|
|
|
|
|
" LTC_HASH_HELPERS "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_VALGRIND)
|
|
|
|
|
" LTC_VALGRIND "
|
|
|
|
|
#endif
|
2003-07-16 17:43:06 +00:00
|
|
|
#if defined(LTC_TEST)
|
|
|
|
|
" LTC_TEST "
|
2004-05-12 20:42:16 +00:00
|
|
|
#endif
|
2015-09-08 21:09:49 +02:00
|
|
|
#if defined(LTC_TEST_EXT)
|
|
|
|
|
" LTC_TEST_EXT "
|
|
|
|
|
#endif
|
2004-12-30 23:55:53 +00:00
|
|
|
#if defined(LTC_SMALL_CODE)
|
|
|
|
|
" LTC_SMALL_CODE "
|
2004-05-31 02:36:47 +00:00
|
|
|
#endif
|
2004-12-30 23:55:53 +00:00
|
|
|
#if defined(LTC_NO_FILE)
|
|
|
|
|
" LTC_NO_FILE "
|
2004-08-06 16:42:41 +00:00
|
|
|
#endif
|
2017-03-31 07:35:13 +02:00
|
|
|
#if defined(LTC_FILE_READ_BUFSIZE)
|
|
|
|
|
" " NAME_VALUE(LTC_FILE_READ_BUFSIZE) " "
|
|
|
|
|
#endif
|
2005-04-17 11:37:13 +00:00
|
|
|
#if defined(LTC_FAST)
|
|
|
|
|
" LTC_FAST "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_NO_FAST)
|
|
|
|
|
" LTC_NO_FAST "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_NO_BSWAP)
|
|
|
|
|
" LTC_NO_BSWAP "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_NO_ASM)
|
|
|
|
|
" LTC_NO_ASM "
|
2005-06-09 00:08:13 +00:00
|
|
|
#endif
|
2016-01-05 23:55:06 +01:00
|
|
|
#if defined(LTC_ROx_ASM)
|
|
|
|
|
" LTC_ROx_ASM "
|
|
|
|
|
#if defined(LTC_NO_ROLC)
|
|
|
|
|
" LTC_NO_ROLC "
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
2005-06-09 00:08:13 +00:00
|
|
|
#if defined(LTC_NO_TEST)
|
|
|
|
|
" LTC_NO_TEST "
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_NO_TABLES)
|
|
|
|
|
" LTC_NO_TABLES "
|
2005-06-27 11:47:35 +00:00
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_PTHREAD)
|
|
|
|
|
" LTC_PTHREAD "
|
2003-12-24 18:59:57 +00:00
|
|
|
#endif
|
2014-03-04 21:29:40 +01:00
|
|
|
#if defined(LTM_DESC)
|
2005-08-01 16:36:47 +00:00
|
|
|
" LTM_DESC "
|
|
|
|
|
#endif
|
2014-03-04 21:29:40 +01:00
|
|
|
#if defined(TFM_DESC)
|
2005-08-01 16:36:47 +00:00
|
|
|
" TFM_DESC "
|
|
|
|
|
#endif
|
2014-03-04 21:29:40 +01:00
|
|
|
#if defined(GMP_DESC)
|
2006-04-06 19:48:32 +00:00
|
|
|
" GMP_DESC "
|
|
|
|
|
#endif
|
2006-01-26 18:11:56 +00:00
|
|
|
#if defined(LTC_EASY)
|
2014-04-30 01:10:22 +02:00
|
|
|
" LTC_EASY "
|
2014-03-04 21:28:16 +01:00
|
|
|
#endif
|
2014-07-16 15:11:14 +02:00
|
|
|
#if defined(LTC_MECC_ACCEL)
|
|
|
|
|
" LTC_MECC_ACCEL "
|
|
|
|
|
#endif
|
2007-07-20 17:48:02 +00:00
|
|
|
#if defined(LTC_MECC_FP)
|
|
|
|
|
" LTC_MECC_FP "
|
2006-12-16 18:10:04 +00:00
|
|
|
#endif
|
|
|
|
|
#if defined(LTC_ECC_SHAMIR)
|
|
|
|
|
" LTC_ECC_SHAMIR "
|
2006-05-29 23:12:56 +00:00
|
|
|
#endif
|
2003-03-03 00:59:24 +00:00
|
|
|
"\n"
|
|
|
|
|
;
|
|
|
|
|
|
2005-06-09 00:08:13 +00:00
|
|
|
|
|
|
|
|
/* $Source$ */
|
|
|
|
|
/* $Revision$ */
|
|
|
|
|
/* $Date$ */
|