1 /* LibTomCrypt, modular cryptographic library -- Tom St Denis
3 * LibTomCrypt is a library that provides various cryptographic
4 * algorithms in a highly modular and flexible manner.
6 * The library is free for all purposes without any express
13 Build strings, Tom St Denis
15 #define NAME_VALUE(s) #s"="NAME(s)
18 const char *crypt_build_settings =
19 "LibTomCrypt " SCRYPT " (www.libtom.net)\n"
20 "LibTomCrypt is public domain software.\n"
21 #if defined(INCLUDE_BUILD_DATE)
22 "Built on " __DATE__ " at " __TIME__ "\n"
25 #if defined(ENDIAN_NEUTRAL)
28 #if defined(ENDIAN_LITTLE)
30 #elif defined(ENDIAN_BIG)
33 #if defined(ENDIAN_32BITWORD)
35 #elif defined(ENDIAN_64BITWORD)
38 " (no wordsize defined)\n"
41 #if defined(LTC_CLEAN_STACK)
46 "\nCiphers built-in:\n"
47 #if defined(LTC_BLOWFISH)
59 #if defined(LTC_SAFERP)
62 #if defined(LTC_SAFER)
65 #if defined(LTC_RIJNDAEL)
71 #if defined(LTC_TWOFISH)
73 #if defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_TABLES) && defined(LTC_TWOFISH_ALL_TABLES)
74 "(small, tables, all_tables)\n"
75 #elif defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_TABLES)
77 #elif defined(LTC_TWOFISH_SMALL) && defined(LTC_TWOFISH_ALL_TABLES)
78 "(small, all_tables)\n"
79 #elif defined(LTC_TWOFISH_TABLES) && defined(LTC_TWOFISH_ALL_TABLES)
80 "(tables, all_tables)\n"
81 #elif defined(LTC_TWOFISH_SMALL)
83 #elif defined(LTC_TWOFISH_TABLES)
85 #elif defined(LTC_TWOFISH_ALL_TABLES)
94 #if defined(LTC_CAST5)
97 #if defined(LTC_NOEKEON)
100 #if defined(LTC_SKIPJACK)
103 #if defined(LTC_KHAZAD)
106 #if defined(LTC_ANUBIS)
109 #if defined(LTC_ANUBIS_TWEAK)
113 #if defined(LTC_KSEED)
116 #if defined(LTC_KASUMI)
119 #if defined(LTC_MULTI2)
122 #if defined(LTC_CAMELLIA)
125 "Stream ciphers built-in:\n"
126 #if defined(LTC_CHACHA)
129 #if defined(LTC_RC4_STREAM)
132 #if defined(LTC_SOBER128_STREAM)
136 "\nHashes built-in:\n"
137 #if defined(LTC_SHA3)
140 #if defined(LTC_SHA512)
143 #if defined(LTC_SHA384)
146 #if defined(LTC_SHA512_256)
149 #if defined(LTC_SHA256)
152 #if defined(LTC_SHA512_224)
155 #if defined(LTC_SHA224)
158 #if defined(LTC_TIGER)
161 #if defined(LTC_SHA1)
173 #if defined(LTC_RIPEMD128)
176 #if defined(LTC_RIPEMD160)
179 #if defined(LTC_RIPEMD256)
182 #if defined(LTC_RIPEMD320)
185 #if defined(LTC_WHIRLPOOL)
188 #if defined(LTC_BLAKE2S)
191 #if defined(LTC_BLAKE2B)
194 #if defined(LTC_CHC_HASH)
198 "\nBlock Chaining Modes:\n"
199 #if defined(LTC_CFB_MODE)
202 #if defined(LTC_OFB_MODE)
205 #if defined(LTC_ECB_MODE)
208 #if defined(LTC_CBC_MODE)
211 #if defined(LTC_CTR_MODE)
214 #if defined(LTC_LRW_MODE)
216 #if defined(LTC_LRW_TABLES)
221 #if defined(LTC_F8_MODE)
224 #if defined(LTC_XTS_MODE)
229 #if defined(LTC_HMAC)
232 #if defined(LTC_OMAC)
235 #if defined(LTC_PMAC)
238 #if defined(LTC_PELICAN)
241 #if defined(LTC_XCBC)
244 #if defined(LTC_F9_MODE)
247 #if defined(LTC_POLY1305)
250 #if defined(LTC_BLAKE2SMAC)
253 #if defined(LTC_BLAKE2BMAC)
257 "\nENC + AUTH modes:\n"
258 #if defined(LTC_EAX_MODE)
261 #if defined(LTC_OCB_MODE)
264 #if defined(LTC_OCB3_MODE)
267 #if defined(LTC_CCM_MODE)
270 #if defined(LTC_GCM_MODE)
272 #if defined(LTC_GCM_TABLES)
275 #if defined(LTC_GCM_TABLES_SSE2)
280 #if defined(LTC_CHACHA20POLY1305_MODE)
281 " CHACHA20POLY1305\n"
285 #if defined(LTC_YARROW)
286 " Yarrow ("NAME_VALUE(LTC_YARROW_AES)")\n"
288 #if defined(LTC_SPRNG)
294 #if defined(LTC_CHACHA20_PRNG)
297 #if defined(LTC_FORTUNA)
298 " Fortuna (" NAME_VALUE(LTC_FORTUNA_POOLS) ", " NAME_VALUE(LTC_FORTUNA_WD) ")\n"
300 #if defined(LTC_SOBER128)
305 #if defined(LTC_MRSA)
307 #if defined(LTC_RSA_BLINDING) && defined(LTC_RSA_CRT_HARDENING)
308 " (with blinding and CRT hardening)"
309 #elif defined(LTC_RSA_BLINDING)
311 #elif defined(LTC_RSA_CRT_HARDENING)
312 " (with CRT hardening)"
319 #if defined(LTC_MECC)
321 #if defined(LTC_ECC_TIMING_RESISTANT)
326 #if defined(LTC_MDSA)
329 #if defined(LTC_MKAT)
332 #if defined(LTC_PK_MAX_RETRIES)
333 " "NAME_VALUE(LTC_PK_MAX_RETRIES)"\n"
340 #if defined(LTM_DESC)
343 #if defined(TFM_DESC)
346 #if defined(GMP_DESC)
349 #if defined(LTC_MILLER_RABIN_REPS)
350 " "NAME_VALUE(LTC_MILLER_RABIN_REPS)"\n"
355 " WIN64 platform detected.\n"
356 #elif defined(_WIN32)
357 " WIN32 platform detected.\n"
359 #if defined(__CYGWIN__)
360 " CYGWIN Detected.\n"
362 #if defined(__DJGPP__)
365 #if defined(_MSC_VER)
366 " MSVC compiler detected.\n"
368 #if defined(__clang_version__)
369 " Clang compiler " __clang_version__ ".\n"
370 #elif defined(INTEL_CC)
371 " Intel C Compiler " __VERSION__ ".\n"
372 #elif defined(__GNUC__) /* clang and icc also define __GNUC__ */
373 " GCC compiler " __VERSION__ ".\n"
376 #if defined(__x86_64__)
377 " x86-64 detected.\n"
379 #if defined(LTC_PPC32)
385 " " NAME_VALUE(ARGTYPE) " "
387 #if defined(LTC_ADLER32)
390 #if defined(LTC_BASE64)
393 #if defined(LTC_BASE64_URL)
396 #if defined(LTC_CRC32)
401 " " NAME_VALUE(LTC_DER_MAX_RECURSION) " "
403 #if defined(LTC_PKCS_1)
406 #if defined(LTC_PKCS_5)
409 #if defined(LTC_HKDF)
412 #if defined(LTC_DEVRANDOM)
415 #if defined(LTC_TRY_URANDOM_FIRST)
416 " LTC_TRY_URANDOM_FIRST "
418 #if defined(LTC_RNG_GET_BYTES)
419 " LTC_RNG_GET_BYTES "
421 #if defined(LTC_RNG_MAKE_PRNG)
422 " LTC_RNG_MAKE_PRNG "
424 #if defined(LTC_PRNG_ENABLE_LTC_RNG)
425 " LTC_PRNG_ENABLE_LTC_RNG "
427 #if defined(LTC_HASH_HELPERS)
430 #if defined(LTC_VALGRIND)
433 #if defined(LTC_TEST)
436 #if defined(LTC_TEST_DBG)
437 " " NAME_VALUE(LTC_TEST_DBG) " "
439 #if defined(LTC_TEST_EXT)
442 #if defined(LTC_SMALL_CODE)
445 #if defined(LTC_NO_FILE)
448 #if defined(LTC_FILE_READ_BUFSIZE)
449 " " NAME_VALUE(LTC_FILE_READ_BUFSIZE) " "
451 #if defined(LTC_FAST)
454 #if defined(LTC_NO_FAST)
457 #if defined(LTC_NO_BSWAP)
460 #if defined(LTC_NO_ASM)
463 #if defined(LTC_ROx_ASM)
465 #if defined(LTC_NO_ROLC)
469 #if defined(LTC_NO_TEST)
472 #if defined(LTC_NO_TABLES)
475 #if defined(LTC_PTHREAD)
478 #if defined(LTC_EASY)
481 #if defined(LTC_MECC_ACCEL)
484 #if defined(LTC_MECC_FP)
487 #if defined(LTC_ECC_SHAMIR)
494 /* ref: $Format:%D$ */
495 /* git commit: $Format:%H$ */
496 /* commit time: $Format:%ai$ */