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