mycrypt_custom.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /* This header is meant to be included before mycrypt.h in projects where
  2. * you don't want to throw all the defines in a makefile.
  3. */
  4. #ifndef MYCRYPT_CUSTOM_H_
  5. #define MYCRYPT_CUSTOM_H_
  6. /* macros for various libc functions you can change for embedded targets */
  7. #define XMALLOC malloc
  8. #define XREALLOC realloc
  9. #define XCALLOC calloc
  10. #define XFREE free
  11. #define XMEMSET memset
  12. #define XMEMCPY memcpy
  13. #define XCLOCK clock
  14. #define XCLOCKS_PER_SEC CLOCKS_PER_SEC
  15. /* Use small code where possible */
  16. #define SMALL_CODE
  17. /* Enable self-test test vector checking */
  18. #define LTC_TEST
  19. /* clean the stack of functions which put private information on stack */
  20. // #define CLEAN_STACK
  21. /* disable all file related functions */
  22. //#define NO_FILE
  23. /* various ciphers */
  24. #define BLOWFISH
  25. #define RC2
  26. #define RC5
  27. #define RC6
  28. #define SAFERP
  29. #define RIJNDAEL
  30. #define XTEA
  31. #define TWOFISH
  32. #define TWOFISH_TABLES
  33. // #define TWOFISH_ALL_TABLES
  34. // #define TWOFISH_SMALL
  35. #define DES
  36. #define CAST5
  37. #define NOEKEON
  38. #define SKIPJACK
  39. /* SAFER code isn't public domain. It appears to be free to use
  40. * but has been disabled by default to avoid any such problems
  41. */
  42. //#define SAFER
  43. /* modes of operation */
  44. #define CFB
  45. #define OFB
  46. #define ECB
  47. #define CBC
  48. #define CTR
  49. /* hash functions */
  50. #define WHIRLPOOL
  51. #define SHA512
  52. #define SHA384
  53. #define SHA256
  54. #define SHA224
  55. #define TIGER
  56. #define SHA1
  57. #define MD5
  58. #define MD4
  59. #define MD2
  60. #define RIPEMD128
  61. #define RIPEMD160
  62. /* MAC functions */
  63. #define HMAC
  64. #define OMAC
  65. #define PMAC
  66. /* Encrypt + Authenticate Modes */
  67. #define EAX_MODE
  68. #define OCB_MODE
  69. /* Various tidbits of modern neatoness */
  70. #define BASE64
  71. #define YARROW
  72. // which descriptor of AES to use?
  73. // 0 = rijndael_enc 1 = aes_enc, 2 = rijndael [full], 3 = aes [full]
  74. #define YARROW_AES 0
  75. #define SPRNG
  76. #define RC4
  77. /* Fortuna */
  78. #define FORTUNA
  79. /* reseed every N calls to the read function */
  80. #define FORTUNA_WD 1024
  81. #define DEVRANDOM
  82. #define TRY_URANDOM_FIRST
  83. /* Public Key Neatoness */
  84. #define MRSA
  85. /* enable RSA side channel timing prevention */
  86. #define RSA_TIMING
  87. /* Digital Signature Algorithm */
  88. #define MDSA
  89. /* Max diff between group and modulus size in bytes */
  90. #define MDSA_DELTA 512
  91. /* Max DSA group size in bytes (default allows 4k-bit groups) */
  92. #define MDSA_MAX_GROUP 512
  93. /* Diffie-Hellman */
  94. #define MDH
  95. /* Supported Key Sizes */
  96. #define DH768
  97. #define DH1024
  98. #define DH1280
  99. #define DH1536
  100. #define DH1792
  101. #define DH2048
  102. #define DH2560
  103. #define DH3072
  104. #define DH4096
  105. /* ECC */
  106. #define MECC
  107. /* Supported Key Sizes */
  108. #define ECC160
  109. #define ECC192
  110. #define ECC224
  111. #define ECC256
  112. #define ECC384
  113. #define ECC521
  114. /* Include the MPI functionality? (required by the PK algorithms) */
  115. #define MPI
  116. /* Use SSE2 optimizations in LTM? Requires GCC or ICC and a P4 or K8 processor */
  117. // #define LTMSSE
  118. /* PKCS #1 and #5 stuff */
  119. #define PKCS_1
  120. #define PKCS_5
  121. #endif