crypto_config.h 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. /**
  2. * @file crypto_config.h
  3. * @brief CycloneCRYPTO configuration file
  4. *
  5. * @section License
  6. *
  7. * SPDX-License-Identifier: GPL-2.0-or-later
  8. *
  9. * Copyright (C) 2010-2023 Oryx Embedded SARL. All rights reserved.
  10. *
  11. * This file is part of CycloneCRYPTO Open.
  12. *
  13. * This program is free software; you can redistribute it and/or
  14. * modify it under the terms of the GNU General Public License
  15. * as published by the Free Software Foundation; either version 2
  16. * of the License, or (at your option) any later version.
  17. *
  18. * This program is distributed in the hope that it will be useful,
  19. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  21. * GNU General Public License for more details.
  22. *
  23. * You should have received a copy of the GNU General Public License
  24. * along with this program; if not, write to the Free Software Foundation,
  25. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  26. *
  27. * @author Oryx Embedded SARL (www.oryx-embedded.com)
  28. * @version 2.2.4
  29. **/
  30. #ifndef _CRYPTO_CONFIG_H
  31. #define _CRYPTO_CONFIG_H
  32. //Desired trace level (for debugging purposes)
  33. #define CRYPTO_TRACE_LEVEL TRACE_LEVEL_INFO
  34. //True random number generator
  35. #define RA6_CRYPTO_TRNG_SUPPORT ENABLED
  36. //Hash hardware accelerator
  37. #define RA6_CRYPTO_HASH_SUPPORT ENABLED
  38. //Cipher hardware accelerator
  39. #define RA6_CRYPTO_CIPHER_SUPPORT ENABLED
  40. //Public-key hardware accelerator
  41. #define RA6_CRYPTO_PKC_SUPPORT ENABLED
  42. //Multiple precision integer support
  43. #define MPI_SUPPORT ENABLED
  44. //Assembly optimizations for time-critical routines
  45. #define MPI_ASM_SUPPORT DISABLED
  46. //Base64 encoding support
  47. #define BASE64_SUPPORT ENABLED
  48. //Base64url encoding support
  49. #define BASE64URL_SUPPORT DISABLED
  50. //MD2 hash support
  51. #define MD2_SUPPORT DISABLED
  52. //MD4 hash support
  53. #define MD4_SUPPORT DISABLED
  54. //MD5 hash support
  55. #define MD5_SUPPORT ENABLED
  56. //RIPEMD-128 hash support
  57. #define RIPEMD128_SUPPORT DISABLED
  58. //RIPEMD-160 hash support
  59. #define RIPEMD160_SUPPORT DISABLED
  60. //SHA-1 hash support
  61. #define SHA1_SUPPORT ENABLED
  62. //SHA-224 hash support
  63. #define SHA224_SUPPORT ENABLED
  64. //SHA-256 hash support
  65. #define SHA256_SUPPORT ENABLED
  66. //SHA-384 hash support
  67. #define SHA384_SUPPORT ENABLED
  68. //SHA-512 hash support
  69. #define SHA512_SUPPORT ENABLED
  70. //SHA-512/224 hash support
  71. #define SHA512_224_SUPPORT DISABLED
  72. //SHA-512/256 hash support
  73. #define SHA512_256_SUPPORT DISABLED
  74. //SHA3-224 hash support
  75. #define SHA3_224_SUPPORT DISABLED
  76. //SHA3-256 hash support
  77. #define SHA3_256_SUPPORT DISABLED
  78. //SHA3-384 hash support
  79. #define SHA3_384_SUPPORT DISABLED
  80. //SHA3-512 hash support
  81. #define SHA3_512_SUPPORT DISABLED
  82. //SHAKE support
  83. #define SHAKE_SUPPORT DISABLED
  84. //cSHAKE support
  85. #define CSHAKE_SUPPORT DISABLED
  86. //Keccak support
  87. #define KECCAK_SUPPORT DISABLED
  88. //BLAKE2b support
  89. #define BLAKE2B_SUPPORT DISABLED
  90. //BLAKE2b-160 hash support
  91. #define BLAKE2B160_SUPPORT DISABLED
  92. //BLAKE2b-256 hash support
  93. #define BLAKE2B256_SUPPORT DISABLED
  94. //BLAKE2b-384 hash support
  95. #define BLAKE2B384_SUPPORT DISABLED
  96. //BLAKE2b-512 hash support
  97. #define BLAKE2B512_SUPPORT DISABLED
  98. //BLAKE2s support
  99. #define BLAKE2S_SUPPORT DISABLED
  100. //BLAKE2s-128 hash support
  101. #define BLAKE2S128_SUPPORT DISABLED
  102. //BLAKE2s-160 hash support
  103. #define BLAKE2S160_SUPPORT DISABLED
  104. //BLAKE2s-224 hash support
  105. #define BLAKE2S224_SUPPORT DISABLED
  106. //BLAKE2s-256 hash support
  107. #define BLAKE2S256_SUPPORT DISABLED
  108. //Tiger hash support
  109. #define TIGER_SUPPORT DISABLED
  110. //Whirlpool hash support
  111. #define WHIRLPOOL_SUPPORT DISABLED
  112. //CMAC support
  113. #define CMAC_SUPPORT DISABLED
  114. //HMAC support
  115. #define HMAC_SUPPORT ENABLED
  116. //GMAC support
  117. #define GMAC_SUPPORT DISABLED
  118. //KMAC support
  119. #define KMAC_SUPPORT DISABLED
  120. //RC2 support
  121. #define RC2_SUPPORT DISABLED
  122. //RC4 support
  123. #define RC4_SUPPORT DISABLED
  124. //RC6 support
  125. #define RC6_SUPPORT DISABLED
  126. //CAST-128 support
  127. #define CAST128_SUPPORT DISABLED
  128. //CAST-256 support
  129. #define CAST256_SUPPORT DISABLED
  130. //IDEA support
  131. #define IDEA_SUPPORT DISABLED
  132. //DES support
  133. #define DES_SUPPORT ENABLED
  134. //Triple DES support
  135. #define DES3_SUPPORT ENABLED
  136. //AES support
  137. #define AES_SUPPORT ENABLED
  138. //Blowfish support
  139. #define BLOWFISH_SUPPORT DISABLED
  140. //Twofish support
  141. #define TWOFISH_SUPPORT DISABLED
  142. //MARS support
  143. #define MARS_SUPPORT DISABLED
  144. //Serpent support
  145. #define SERPENT_SUPPORT DISABLED
  146. //Camellia support
  147. #define CAMELLIA_SUPPORT DISABLED
  148. //SEED support
  149. #define SEED_SUPPORT DISABLED
  150. //ARIA support
  151. #define ARIA_SUPPORT DISABLED
  152. //PRESENT support
  153. #define PRESENT_SUPPORT DISABLED
  154. //TEA encryption support
  155. #define TEA_SUPPORT DISABLED
  156. //XTEA encryption support
  157. #define XTEA_SUPPORT DISABLED
  158. //Trivium support
  159. #define TRIVIUM_SUPPORT DISABLED
  160. //ECB mode support
  161. #define ECB_SUPPORT ENABLED
  162. //CBC mode support
  163. #define CBC_SUPPORT ENABLED
  164. //CFB mode support
  165. #define CFB_SUPPORT DISABLED
  166. //OFB mode support
  167. #define OFB_SUPPORT DISABLED
  168. //CTR mode support
  169. #define CTR_SUPPORT DISABLED
  170. //XTS mode support
  171. #define XTS_SUPPORT DISABLED
  172. //CCM mode support
  173. #define CCM_SUPPORT ENABLED
  174. //GCM mode support
  175. #define GCM_SUPPORT ENABLED
  176. //ChaCha support
  177. #define CHACHA_SUPPORT ENABLED
  178. //Poly1305 support
  179. #define POLY1305_SUPPORT ENABLED
  180. //ChaCha20Poly1305 support
  181. #define CHACHA20_POLY1305_SUPPORT ENABLED
  182. //Diffie-Hellman support
  183. #define DH_SUPPORT ENABLED
  184. //RSA support
  185. #define RSA_SUPPORT ENABLED
  186. //DSA support
  187. #define DSA_SUPPORT ENABLED
  188. //Elliptic curve cryptography support
  189. #define EC_SUPPORT ENABLED
  190. //ECDH support
  191. #define ECDH_SUPPORT ENABLED
  192. //ECDSA support
  193. #define ECDSA_SUPPORT ENABLED
  194. //secp112r1 elliptic curve support
  195. #define SECP112R1_SUPPORT DISABLED
  196. //secp112r2 elliptic curve support
  197. #define SECP112R2_SUPPORT DISABLED
  198. //secp128r1 elliptic curve support
  199. #define SECP128R1_SUPPORT DISABLED
  200. //secp128r2 elliptic curve support
  201. #define SECP128R2_SUPPORT DISABLED
  202. //secp160k1 elliptic curve support
  203. #define SECP160K1_SUPPORT DISABLED
  204. //secp160r1 elliptic curve support
  205. #define SECP160R1_SUPPORT DISABLED
  206. //secp160r2 elliptic curve support
  207. #define SECP160R2_SUPPORT DISABLED
  208. //secp192k1 elliptic curve support
  209. #define SECP192K1_SUPPORT DISABLED
  210. //secp192r1 elliptic curve support (NIST P-192)
  211. #define SECP192R1_SUPPORT DISABLED
  212. //secp224k1 elliptic curve support
  213. #define SECP224K1_SUPPORT DISABLED
  214. //secp224r1 elliptic curve support (NIST P-224)
  215. #define SECP224R1_SUPPORT ENABLED
  216. //secp256k1 elliptic curve support
  217. #define SECP256K1_SUPPORT DISABLED
  218. //secp256r1 elliptic curve support (NIST P-256)
  219. #define SECP256R1_SUPPORT ENABLED
  220. //secp384r1 elliptic curve support (NIST P-384)
  221. #define SECP384R1_SUPPORT ENABLED
  222. //secp521r1 elliptic curve support (NIST P-521)
  223. #define SECP521R1_SUPPORT ENABLED
  224. //brainpoolP160r1 elliptic curve support
  225. #define BRAINPOOLP160R1_SUPPORT DISABLED
  226. //brainpoolP192r1 elliptic curve support
  227. #define BRAINPOOLP192R1_SUPPORT DISABLED
  228. //brainpoolP224r1 elliptic curve support
  229. #define BRAINPOOLP224R1_SUPPORT DISABLED
  230. //brainpoolP256r1 elliptic curve support
  231. #define BRAINPOOLP256R1_SUPPORT DISABLED
  232. //brainpoolP320r1 elliptic curve support
  233. #define BRAINPOOLP320R1_SUPPORT DISABLED
  234. //brainpoolP384r1 elliptic curve support
  235. #define BRAINPOOLP384R1_SUPPORT DISABLED
  236. //brainpoolP512r1 elliptic curve support
  237. #define BRAINPOOLP512R1_SUPPORT DISABLED
  238. //Curve25519 elliptic curve support
  239. #define X25519_SUPPORT ENABLED
  240. //Curve448 elliptic curve support
  241. #define X448_SUPPORT DISABLED
  242. //Ed25519 elliptic curve support
  243. #define ED25519_SUPPORT DISABLED
  244. //Ed448 elliptic curve support
  245. #define ED448_SUPPORT DISABLED
  246. //HKDF support
  247. #define HKDF_SUPPORT ENABLED
  248. //PBKDF support
  249. #define PBKDF_SUPPORT DISABLED
  250. //bcrypt support
  251. #define BCRYPT_SUPPORT DISABLED
  252. //scrypt support
  253. #define SCRYPT_SUPPORT DISABLED
  254. //PKCS #5 support
  255. #define PKCS5_SUPPORT DISABLED
  256. #endif