mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-22 17:15:46 +00:00
497 lines
9.3 KiB
C
497 lines
9.3 KiB
C
/* 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
|
|
* guarantee it works.
|
|
*/
|
|
#include "tomcrypt.h"
|
|
|
|
/**
|
|
@file crypt.c
|
|
Build strings, Tom St Denis
|
|
*/
|
|
#define NAME_VALUE(s) #s"="NAME(s)
|
|
#define NAME(s) #s
|
|
|
|
const char *crypt_build_settings =
|
|
"LibTomCrypt " SCRYPT " (www.libtom.net)\n"
|
|
"LibTomCrypt is public domain software.\n"
|
|
#if defined(INCLUDE_BUILD_DATE)
|
|
"Built on " __DATE__ " at " __TIME__ "\n"
|
|
#endif
|
|
"\n\nEndianness: "
|
|
#if defined(ENDIAN_NEUTRAL)
|
|
"neutral/"
|
|
#endif
|
|
#if defined(ENDIAN_LITTLE)
|
|
"little"
|
|
#elif defined(ENDIAN_BIG)
|
|
"big"
|
|
#endif
|
|
#if defined(ENDIAN_32BITWORD)
|
|
" (32-bit words)\n"
|
|
#elif defined(ENDIAN_64BITWORD)
|
|
" (64-bit words)\n"
|
|
#else
|
|
" (no wordsize defined)\n"
|
|
#endif
|
|
"Clean stack: "
|
|
#if defined(LTC_CLEAN_STACK)
|
|
"enabled\n"
|
|
#else
|
|
"disabled\n"
|
|
#endif
|
|
"\nCiphers built-in:\n"
|
|
#if defined(LTC_BLOWFISH)
|
|
" Blowfish\n"
|
|
#endif
|
|
#if defined(LTC_RC2)
|
|
" RC2\n"
|
|
#endif
|
|
#if defined(LTC_RC5)
|
|
" RC5\n"
|
|
#endif
|
|
#if defined(LTC_RC6)
|
|
" RC6\n"
|
|
#endif
|
|
#if defined(LTC_SAFERP)
|
|
" Safer+\n"
|
|
#endif
|
|
#if defined(LTC_SAFER)
|
|
" Safer\n"
|
|
#endif
|
|
#if defined(LTC_RIJNDAEL)
|
|
" Rijndael\n"
|
|
#endif
|
|
#if defined(LTC_XTEA)
|
|
" XTEA\n"
|
|
#endif
|
|
#if defined(LTC_TWOFISH)
|
|
" Twofish "
|
|
#if defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_TABLES) && defined(LTC_TWOFISH_ALL_TABLES)
|
|
"(small, tables, all_tables)\n"
|
|
#elif defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_TABLES)
|
|
"(small, tables)\n"
|
|
#elif defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_ALL_TABLES)
|
|
"(small, all_tables)\n"
|
|
#elif defined(LTC_TWOFISH_TABLES) && defined(LTC_TWOFISH_ALL_TABLES)
|
|
"(tables, all_tables)\n"
|
|
#elif defined(LTC_TWOFISH_SMALL)
|
|
"(small)\n"
|
|
#elif defined(LTC_TWOFISH_TABLES)
|
|
"(tables)\n"
|
|
#elif defined(LTC_TWOFISH_ALL_TABLES)
|
|
"(all_tables)\n"
|
|
#else
|
|
"\n"
|
|
#endif
|
|
#endif
|
|
#if defined(LTC_DES)
|
|
" DES\n"
|
|
#endif
|
|
#if defined(LTC_CAST5)
|
|
" CAST5\n"
|
|
#endif
|
|
#if defined(LTC_NOEKEON)
|
|
" Noekeon\n"
|
|
#endif
|
|
#if defined(LTC_SKIPJACK)
|
|
" Skipjack\n"
|
|
#endif
|
|
#if defined(LTC_KHAZAD)
|
|
" Khazad\n"
|
|
#endif
|
|
#if defined(LTC_ANUBIS)
|
|
" Anubis "
|
|
#endif
|
|
#if defined(LTC_ANUBIS_TWEAK)
|
|
" (tweaked)"
|
|
#endif
|
|
"\n"
|
|
#if defined(LTC_KSEED)
|
|
" KSEED\n"
|
|
#endif
|
|
#if defined(LTC_KASUMI)
|
|
" KASUMI\n"
|
|
#endif
|
|
#if defined(LTC_MULTI2)
|
|
" MULTI2\n"
|
|
#endif
|
|
#if defined(LTC_CAMELLIA)
|
|
" Camellia\n"
|
|
#endif
|
|
"Stream ciphers built-in:\n"
|
|
#if defined(LTC_CHACHA)
|
|
" ChaCha\n"
|
|
#endif
|
|
#if defined(LTC_RC4_STREAM)
|
|
" RC4\n"
|
|
#endif
|
|
#if defined(LTC_SOBER128_STREAM)
|
|
" SOBER128\n"
|
|
#endif
|
|
|
|
"\nHashes built-in:\n"
|
|
#if defined(LTC_SHA3)
|
|
" SHA3\n"
|
|
#endif
|
|
#if defined(LTC_SHA512)
|
|
" SHA-512\n"
|
|
#endif
|
|
#if defined(LTC_SHA384)
|
|
" SHA-384\n"
|
|
#endif
|
|
#if defined(LTC_SHA512_256)
|
|
" SHA-512/256\n"
|
|
#endif
|
|
#if defined(LTC_SHA256)
|
|
" SHA-256\n"
|
|
#endif
|
|
#if defined(LTC_SHA512_224)
|
|
" SHA-512/224\n"
|
|
#endif
|
|
#if defined(LTC_SHA224)
|
|
" SHA-224\n"
|
|
#endif
|
|
#if defined(LTC_TIGER)
|
|
" TIGER\n"
|
|
#endif
|
|
#if defined(LTC_SHA1)
|
|
" SHA1\n"
|
|
#endif
|
|
#if defined(LTC_MD5)
|
|
" MD5\n"
|
|
#endif
|
|
#if defined(LTC_MD4)
|
|
" MD4\n"
|
|
#endif
|
|
#if defined(LTC_MD2)
|
|
" MD2\n"
|
|
#endif
|
|
#if defined(LTC_RIPEMD128)
|
|
" RIPEMD128\n"
|
|
#endif
|
|
#if defined(LTC_RIPEMD160)
|
|
" RIPEMD160\n"
|
|
#endif
|
|
#if defined(LTC_RIPEMD256)
|
|
" RIPEMD256\n"
|
|
#endif
|
|
#if defined(LTC_RIPEMD320)
|
|
" RIPEMD320\n"
|
|
#endif
|
|
#if defined(LTC_WHIRLPOOL)
|
|
" WHIRLPOOL\n"
|
|
#endif
|
|
#if defined(LTC_BLAKE2S)
|
|
" BLAKE2S\n"
|
|
#endif
|
|
#if defined(LTC_BLAKE2B)
|
|
" BLAKE2B\n"
|
|
#endif
|
|
#if defined(LTC_CHC_HASH)
|
|
" CHC_HASH\n"
|
|
#endif
|
|
|
|
"\nBlock Chaining Modes:\n"
|
|
#if defined(LTC_CFB_MODE)
|
|
" CFB\n"
|
|
#endif
|
|
#if defined(LTC_OFB_MODE)
|
|
" OFB\n"
|
|
#endif
|
|
#if defined(LTC_ECB_MODE)
|
|
" ECB\n"
|
|
#endif
|
|
#if defined(LTC_CBC_MODE)
|
|
" CBC\n"
|
|
#endif
|
|
#if defined(LTC_CTR_MODE)
|
|
" CTR\n"
|
|
#endif
|
|
#if defined(LTC_LRW_MODE)
|
|
" LRW"
|
|
#if defined(LTC_LRW_TABLES)
|
|
" (tables) "
|
|
#endif
|
|
"\n"
|
|
#endif
|
|
#if defined(LTC_F8_MODE)
|
|
" F8\n"
|
|
#endif
|
|
#if defined(LTC_XTS_MODE)
|
|
" XTS\n"
|
|
#endif
|
|
|
|
"\nMACs:\n"
|
|
#if defined(LTC_HMAC)
|
|
" HMAC\n"
|
|
#endif
|
|
#if defined(LTC_OMAC)
|
|
" OMAC\n"
|
|
#endif
|
|
#if defined(LTC_PMAC)
|
|
" PMAC\n"
|
|
#endif
|
|
#if defined(LTC_PELICAN)
|
|
" PELICAN\n"
|
|
#endif
|
|
#if defined(LTC_XCBC)
|
|
" XCBC\n"
|
|
#endif
|
|
#if defined(LTC_F9_MODE)
|
|
" F9\n"
|
|
#endif
|
|
#if defined(LTC_POLY1305)
|
|
" POLY1305\n"
|
|
#endif
|
|
#if defined(LTC_BLAKE2SMAC)
|
|
" BLAKE2S MAC\n"
|
|
#endif
|
|
#if defined(LTC_BLAKE2BMAC)
|
|
" BLAKE2B MAC\n"
|
|
#endif
|
|
|
|
"\nENC + AUTH modes:\n"
|
|
#if defined(LTC_EAX_MODE)
|
|
" EAX\n"
|
|
#endif
|
|
#if defined(LTC_OCB_MODE)
|
|
" OCB\n"
|
|
#endif
|
|
#if defined(LTC_OCB3_MODE)
|
|
" OCB3\n"
|
|
#endif
|
|
#if defined(LTC_CCM_MODE)
|
|
" CCM\n"
|
|
#endif
|
|
#if defined(LTC_GCM_MODE)
|
|
" GCM"
|
|
#if defined(LTC_GCM_TABLES)
|
|
" (tables) "
|
|
#endif
|
|
#if defined(LTC_GCM_TABLES_SSE2)
|
|
" (SSE2) "
|
|
#endif
|
|
"\n"
|
|
#endif
|
|
#if defined(LTC_CHACHA20POLY1305_MODE)
|
|
" CHACHA20POLY1305\n"
|
|
#endif
|
|
|
|
"\nPRNG:\n"
|
|
#if defined(LTC_YARROW)
|
|
" Yarrow ("NAME_VALUE(LTC_YARROW_AES)")\n"
|
|
#endif
|
|
#if defined(LTC_SPRNG)
|
|
" SPRNG\n"
|
|
#endif
|
|
#if defined(LTC_RC4)
|
|
" RC4\n"
|
|
#endif
|
|
#if defined(LTC_CHACHA20_PRNG)
|
|
" ChaCha20\n"
|
|
#endif
|
|
#if defined(LTC_FORTUNA)
|
|
" Fortuna (" NAME_VALUE(LTC_FORTUNA_POOLS) ", " NAME_VALUE(LTC_FORTUNA_WD) ")\n"
|
|
#endif
|
|
#if defined(LTC_SOBER128)
|
|
" SOBER128\n"
|
|
#endif
|
|
|
|
"\nPK Crypto:\n"
|
|
#if defined(LTC_MRSA)
|
|
" RSA"
|
|
#if defined(LTC_RSA_BLINDING) && defined(LTC_RSA_CRT_HARDENING)
|
|
" (with blinding and CRT hardening)"
|
|
#elif defined(LTC_RSA_BLINDING)
|
|
" (with blinding)"
|
|
#elif defined(LTC_RSA_CRT_HARDENING)
|
|
" (with CRT hardening)"
|
|
#endif
|
|
"\n"
|
|
#endif
|
|
#if defined(LTC_MDH)
|
|
" DH\n"
|
|
#endif
|
|
#if defined(LTC_MECC)
|
|
" ECC"
|
|
#if defined(LTC_ECC_TIMING_RESISTANT)
|
|
" (with blinding)"
|
|
#endif
|
|
"\n"
|
|
#endif
|
|
#if defined(LTC_MDSA)
|
|
" DSA\n"
|
|
#endif
|
|
#if defined(LTC_MKAT)
|
|
" Katja\n"
|
|
#endif
|
|
#if defined(LTC_PK_MAX_RETRIES)
|
|
" "NAME_VALUE(LTC_PK_MAX_RETRIES)"\n"
|
|
#endif
|
|
|
|
"\nMPI (Math):\n"
|
|
#if defined(LTC_MPI)
|
|
" LTC_MPI\n"
|
|
#endif
|
|
#if defined(LTM_DESC)
|
|
" LTM_DESC\n"
|
|
#endif
|
|
#if defined(TFM_DESC)
|
|
" TFM_DESC\n"
|
|
#endif
|
|
#if defined(GMP_DESC)
|
|
" GMP_DESC\n"
|
|
#endif
|
|
#if defined(LTC_MILLER_RABIN_REPS)
|
|
" "NAME_VALUE(LTC_MILLER_RABIN_REPS)"\n"
|
|
#endif
|
|
|
|
"\nCompiler:\n"
|
|
#if defined(_WIN64)
|
|
" WIN64 platform detected.\n"
|
|
#elif defined(_WIN32)
|
|
" WIN32 platform detected.\n"
|
|
#endif
|
|
#if defined(__CYGWIN__)
|
|
" CYGWIN Detected.\n"
|
|
#endif
|
|
#if defined(__DJGPP__)
|
|
" DJGPP Detected.\n"
|
|
#endif
|
|
#if defined(_MSC_VER)
|
|
" MSVC compiler detected.\n"
|
|
#endif
|
|
#if defined(__clang_version__)
|
|
" Clang compiler " __clang_version__ ".\n"
|
|
#elif defined(INTEL_CC)
|
|
" Intel C Compiler " __VERSION__ ".\n"
|
|
#elif defined(__GNUC__) /* clang and icc also define __GNUC__ */
|
|
" GCC compiler " __VERSION__ ".\n"
|
|
#endif
|
|
|
|
#if defined(__x86_64__)
|
|
" x86-64 detected.\n"
|
|
#endif
|
|
#if defined(LTC_PPC32)
|
|
" PPC32 detected.\n"
|
|
#endif
|
|
|
|
"\nVarious others: "
|
|
#if defined(ARGTYPE)
|
|
" " NAME_VALUE(ARGTYPE) " "
|
|
#endif
|
|
#if defined(LTC_ADLER32)
|
|
" ADLER32 "
|
|
#endif
|
|
#if defined(LTC_BASE64)
|
|
" BASE64 "
|
|
#endif
|
|
#if defined(LTC_BASE64_URL)
|
|
" BASE64-URL-SAFE "
|
|
#endif
|
|
#if defined(LTC_CRC32)
|
|
" CRC32 "
|
|
#endif
|
|
#if defined(LTC_DER)
|
|
" DER "
|
|
" " NAME_VALUE(LTC_DER_MAX_RECURSION) " "
|
|
#endif
|
|
#if defined(LTC_PKCS_1)
|
|
" PKCS#1 "
|
|
#endif
|
|
#if defined(LTC_PKCS_5)
|
|
" PKCS#5 "
|
|
#endif
|
|
#if defined(LTC_HKDF)
|
|
" HKDF "
|
|
#endif
|
|
#if defined(LTC_DEVRANDOM)
|
|
" LTC_DEVRANDOM "
|
|
#endif
|
|
#if defined(LTC_TRY_URANDOM_FIRST)
|
|
" LTC_TRY_URANDOM_FIRST "
|
|
#endif
|
|
#if defined(LTC_RNG_GET_BYTES)
|
|
" LTC_RNG_GET_BYTES "
|
|
#endif
|
|
#if defined(LTC_RNG_MAKE_PRNG)
|
|
" LTC_RNG_MAKE_PRNG "
|
|
#endif
|
|
#if defined(LTC_PRNG_ENABLE_LTC_RNG)
|
|
" LTC_PRNG_ENABLE_LTC_RNG "
|
|
#endif
|
|
#if defined(LTC_HASH_HELPERS)
|
|
" LTC_HASH_HELPERS "
|
|
#endif
|
|
#if defined(LTC_VALGRIND)
|
|
" LTC_VALGRIND "
|
|
#endif
|
|
#if defined(LTC_TEST)
|
|
" LTC_TEST "
|
|
#endif
|
|
#if defined(LTC_TEST_DBG)
|
|
" " NAME_VALUE(LTC_TEST_DBG) " "
|
|
#endif
|
|
#if defined(LTC_TEST_EXT)
|
|
" LTC_TEST_EXT "
|
|
#endif
|
|
#if defined(LTC_SMALL_CODE)
|
|
" LTC_SMALL_CODE "
|
|
#endif
|
|
#if defined(LTC_NO_FILE)
|
|
" LTC_NO_FILE "
|
|
#endif
|
|
#if defined(LTC_FILE_READ_BUFSIZE)
|
|
" " NAME_VALUE(LTC_FILE_READ_BUFSIZE) " "
|
|
#endif
|
|
#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 "
|
|
#endif
|
|
#if defined(LTC_ROx_ASM)
|
|
" LTC_ROx_ASM "
|
|
#if defined(LTC_NO_ROLC)
|
|
" LTC_NO_ROLC "
|
|
#endif
|
|
#endif
|
|
#if defined(LTC_NO_TEST)
|
|
" LTC_NO_TEST "
|
|
#endif
|
|
#if defined(LTC_NO_TABLES)
|
|
" LTC_NO_TABLES "
|
|
#endif
|
|
#if defined(LTC_PTHREAD)
|
|
" LTC_PTHREAD "
|
|
#endif
|
|
#if defined(LTC_EASY)
|
|
" LTC_EASY "
|
|
#endif
|
|
#if defined(LTC_MECC_ACCEL)
|
|
" LTC_MECC_ACCEL "
|
|
#endif
|
|
#if defined(LTC_MECC_FP)
|
|
" LTC_MECC_FP "
|
|
#endif
|
|
#if defined(LTC_ECC_SHAMIR)
|
|
" LTC_ECC_SHAMIR "
|
|
#endif
|
|
"\n"
|
|
;
|
|
|
|
|
|
/* ref: HEAD -> master, tag: v1.18.2 */
|
|
/* git commit: 7e7eb695d581782f04b24dc444cbfde86af59853 */
|
|
/* commit time: 2018-07-01 22:49:01 +0200 */
|