xref: /optee_os/lib/libmbedtls/include/mbedtls_config_kernel.h (revision 39a4a0ee33c737fecd3bef73631e7900dd591da0)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /* Copyright (c) 2018, Linaro Limited */
3 #ifndef __MBEDTLS_CONFIG_KERNEL_H
4 #define __MBEDTLS_CONFIG_KERNEL_H
5 
6 #ifdef ARM32
7 #define MBEDTLS_HAVE_INT32
8 #endif
9 #ifdef ARM64
10 #define MBEDTLS_HAVE_INT64
11 #endif
12 #define MBEDTLS_NO_UDBL_DIVISION
13 #define MBEDTLS_BIGNUM_C
14 #define MBEDTLS_GENPRIME
15 
16 /* Test if Mbedtls is the primary crypto lib */
17 #ifdef CFG_CRYPTOLIB_NAME_mbedtls
18 
19 #if defined(CFG_CRYPTO_MD5)
20 #define MBEDTLS_MD5_C
21 #define MBEDTLS_MD_C
22 #endif
23 
24 #if defined(CFG_CRYPTO_SHA1)
25 #define MBEDTLS_SHA1_C
26 #define MBEDTLS_MD_C
27 #if defined(CFG_CORE_CRYPTO_SHA1_ACCEL)
28 #define MBEDTLS_SHA1_PROCESS_ALT
29 #endif
30 #endif
31 
32 #if defined(CFG_CRYPTO_SHA224) || defined(CFG_CRYPTO_SHA256)
33 #if defined(CFG_CRYPTO_SHA224)
34 #define MBEDTLS_SHA224_C
35 #endif
36 #if defined(CFG_CRYPTO_SHA256)
37 #define MBEDTLS_SHA256_C
38 #endif
39 #define MBEDTLS_MD_C
40 #if defined(CFG_CORE_CRYPTO_SHA256_ACCEL)
41 #define MBEDTLS_SHA256_PROCESS_ALT
42 #endif
43 #endif
44 
45 #if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512)
46 #if defined(CFG_CRYPTO_SHA384)
47 #define MBEDTLS_SHA384_C
48 #endif
49 #if defined(CFG_CRYPTO_SHA512)
50 #define MBEDTLS_SHA512_C
51 #endif
52 #define MBEDTLS_MD_C
53 #if defined(CFG_CORE_CRYPTO_SHA512_ACCEL)
54 #define MBEDTLS_SHA512_PROCESS_ALT
55 #endif
56 #endif
57 
58 #if defined(CFG_CRYPTO_HMAC)
59 #define MBEDTLS_MD_C
60 #endif
61 
62 #if defined(CFG_CRYPTO_AES)
63 #define MBEDTLS_AES_C
64 #define MBEDTLS_AES_ROM_TABLES
65 #if defined(CFG_CORE_CRYPTO_AES_ACCEL)
66 #define MBEDTLS_AES_ALT
67 #endif
68 #endif
69 
70 #if defined(CFG_CRYPTO_DES)
71 #define MBEDTLS_DES_C
72 #endif
73 
74 #if defined(CFG_CRYPTO_CBC)
75 #define MBEDTLS_CIPHER_MODE_CBC
76 #endif
77 
78 #if defined(CFG_CRYPTO_CTR)
79 #define MBEDTLS_CIPHER_MODE_CTR
80 #endif
81 
82 #if defined(CFG_CRYPTO_CMAC)
83 #define MBEDTLS_CMAC_C
84 #define MBEDTLS_CIPHER_C
85 #endif
86 
87 #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_DH) || defined(CFG_CRYPTO_ECC)
88 #define MBEDTLS_BIGNUM_C
89 #define MBEDTLS_OID_C
90 #define MBEDTLS_PKCS1_V15
91 #define MBEDTLS_PKCS1_V21
92 #define MBEDTLS_PK_C
93 #define MBEDTLS_GENPRIME
94 #define MBEDTLS_CTR_DRBG_C
95 #endif
96 
97 #if defined(CFG_CRYPTO_RSA)
98 #define MBEDTLS_RSA_C
99 #define MBEDTLS_RSA_GEN_KEY_MIN_BITS 128
100 #endif
101 
102 #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC)
103 #define MBEDTLS_ASN1_PARSE_C
104 #define MBEDTLS_ASN1_WRITE_C
105 #endif
106 
107 #if defined(CFG_CRYPTO_DH)
108 #define MBEDTLS_DHM_C
109 #endif
110 
111 #if defined(CFG_CRYPTO_ECC)
112 #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
113 #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
114 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
115 #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
116 #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
117 #define MBEDTLS_ECP_DP_SECP192K1_ENABLED
118 #define MBEDTLS_ECP_DP_SECP224K1_ENABLED
119 #define MBEDTLS_ECP_DP_SECP256K1_ENABLED
120 #define MBEDTLS_ECP_DP_BP256R1_ENABLED
121 #define MBEDTLS_ECP_DP_BP384R1_ENABLED
122 #define MBEDTLS_ECP_DP_BP512R1_ENABLED
123 #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
124 #define MBEDTLS_ECP_C
125 #define MBEDTLS_ECDSA_C
126 #define MBEDTLS_ECDH_C
127 #define MBEDTLS_ECDH_LEGACY_CONTEXT
128 #if defined(CFG_CRYPTO_DSA) || defined(CFG_CRYPTO_SM2_PKE) || \
129 	defined(CFG_CRYPTO_SM2_KEP)
130 #define MBEDTLS_ECP_DP_SM2_ENABLED
131 #endif
132 #endif
133 
134 #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/
135 
136 #endif /* __MBEDTLS_CONFIG_KERNEL_H */
137