xref: /optee_os/lib/libmbedtls/include/mbedtls_config_kernel.h (revision b0563631928755fe864b97785160fb3088e9efdc)
1a97bc4a0SJens Wiklander /* SPDX-License-Identifier: BSD-2-Clause */
2a97bc4a0SJens Wiklander /* Copyright (c) 2018, Linaro Limited */
3e789ada3SJens Wiklander #ifndef __MBEDTLS_CONFIG_KERNEL_H
4e789ada3SJens Wiklander #define __MBEDTLS_CONFIG_KERNEL_H
5e789ada3SJens Wiklander 
6c6e2ead3SJens Wiklander #ifdef ARM32
7c6e2ead3SJens Wiklander #define MBEDTLS_HAVE_INT32
8c6e2ead3SJens Wiklander #endif
9c6e2ead3SJens Wiklander #ifdef ARM64
10c6e2ead3SJens Wiklander #define MBEDTLS_HAVE_INT64
11c6e2ead3SJens Wiklander #endif
12e789ada3SJens Wiklander #define MBEDTLS_BIGNUM_C
13e789ada3SJens Wiklander #define MBEDTLS_GENPRIME
14e789ada3SJens Wiklander 
1577327d7aSEdison Ai /* Test if Mbedtls is the primary crypto lib */
1677327d7aSEdison Ai #ifdef CFG_CRYPTOLIB_NAME_mbedtls
1777327d7aSEdison Ai 
18dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_MD5)
19dddd6a26SJens Wiklander #define MBEDTLS_MD5_C
20dddd6a26SJens Wiklander #define MBEDTLS_MD_C
21dddd6a26SJens Wiklander #endif
22dddd6a26SJens Wiklander 
23dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA1)
24dddd6a26SJens Wiklander #define MBEDTLS_SHA1_C
25dddd6a26SJens Wiklander #define MBEDTLS_MD_C
26734545daSJens Wiklander #if defined(CFG_CORE_CRYPTO_SHA1_ACCEL)
27734545daSJens Wiklander #define MBEDTLS_SHA1_PROCESS_ALT
28734545daSJens Wiklander #endif
29dddd6a26SJens Wiklander #endif
30dddd6a26SJens Wiklander 
31dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA224) || defined(CFG_CRYPTO_SHA256)
3232b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA224)
3332b31808SJens Wiklander #define MBEDTLS_SHA224_C
3432b31808SJens Wiklander #endif
3532b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA256)
36dddd6a26SJens Wiklander #define MBEDTLS_SHA256_C
3732b31808SJens Wiklander #endif
38dddd6a26SJens Wiklander #define MBEDTLS_MD_C
39db750c42SJens Wiklander #if defined(CFG_CORE_CRYPTO_SHA256_ACCEL)
402fc5dc95SJens Wiklander #define MBEDTLS_SHA256_PROCESS_ALT
412fc5dc95SJens Wiklander #endif
42dddd6a26SJens Wiklander #endif
43dddd6a26SJens Wiklander 
44dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512)
4532b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA384)
4632b31808SJens Wiklander #define MBEDTLS_SHA384_C
4732b31808SJens Wiklander #endif
4832b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA512)
49dddd6a26SJens Wiklander #define MBEDTLS_SHA512_C
5032b31808SJens Wiklander #endif
51dddd6a26SJens Wiklander #define MBEDTLS_MD_C
528ad96da2SJens Wiklander #if defined(CFG_CORE_CRYPTO_SHA512_ACCEL)
538ad96da2SJens Wiklander #define MBEDTLS_SHA512_PROCESS_ALT
548ad96da2SJens Wiklander #endif
55dddd6a26SJens Wiklander #endif
56dddd6a26SJens Wiklander 
572b716cccSEdison Ai #if defined(CFG_CRYPTO_HMAC)
582b716cccSEdison Ai #define MBEDTLS_MD_C
592b716cccSEdison Ai #endif
602b716cccSEdison Ai 
61d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_AES)
62d2e5e90eSEdison Ai #define MBEDTLS_AES_C
63d2e5e90eSEdison Ai #define MBEDTLS_AES_ROM_TABLES
6410b90791SJens Wiklander #if defined(CFG_CORE_CRYPTO_AES_ACCEL)
6510b90791SJens Wiklander #define MBEDTLS_AES_ALT
6610b90791SJens Wiklander #endif
67d2e5e90eSEdison Ai #endif
68d2e5e90eSEdison Ai 
69d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_DES)
70d2e5e90eSEdison Ai #define MBEDTLS_DES_C
71d2e5e90eSEdison Ai #endif
72d2e5e90eSEdison Ai 
73d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CBC)
74d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CBC
75d2e5e90eSEdison Ai #endif
76d2e5e90eSEdison Ai 
77d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CTR)
78d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CTR
79d2e5e90eSEdison Ai #endif
80d2e5e90eSEdison Ai 
81ebc81cdcSEdison Ai #if defined(CFG_CRYPTO_CMAC)
82ebc81cdcSEdison Ai #define MBEDTLS_CMAC_C
83ebc81cdcSEdison Ai #define MBEDTLS_CIPHER_C
84ebc81cdcSEdison Ai #endif
85ebc81cdcSEdison Ai 
86a2aa5803SJens Wiklander #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_DH) || defined(CFG_CRYPTO_ECC)
87000fae55SEdison Ai #define MBEDTLS_BIGNUM_C
88f8907bbfSEdison Ai #define MBEDTLS_OID_C
89f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V15
90f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V21
91f8907bbfSEdison Ai #define MBEDTLS_PK_C
92f8907bbfSEdison Ai #define MBEDTLS_GENPRIME
93f8907bbfSEdison Ai #define MBEDTLS_CTR_DRBG_C
94f8907bbfSEdison Ai #endif
95f8907bbfSEdison Ai 
96f8907bbfSEdison Ai #if defined(CFG_CRYPTO_RSA)
97f8907bbfSEdison Ai #define MBEDTLS_RSA_C
98*b0563631STom Van Eyck #define MBEDTLS_RSA_GEN_KEY_MIN_BITS 128
99f8907bbfSEdison Ai #endif
100f8907bbfSEdison Ai 
101ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC)
102f8907bbfSEdison Ai #define MBEDTLS_ASN1_PARSE_C
103f8907bbfSEdison Ai #define MBEDTLS_ASN1_WRITE_C
104000fae55SEdison Ai #endif
105000fae55SEdison Ai 
10634789f62SEdison Ai #if defined(CFG_CRYPTO_DH)
10734789f62SEdison Ai #define MBEDTLS_DHM_C
10834789f62SEdison Ai #endif
10934789f62SEdison Ai 
110ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_ECC)
111ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
112ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
113ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
114ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
115ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
116ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192K1_ENABLED
117ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224K1_ENABLED
118ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256K1_ENABLED
119ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP256R1_ENABLED
120ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP384R1_ENABLED
121ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP512R1_ENABLED
122ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
123ad6cfae7SEdison Ai #define MBEDTLS_ECP_C
124ad6cfae7SEdison Ai #define MBEDTLS_ECDSA_C
125ad6cfae7SEdison Ai #define MBEDTLS_ECDH_C
12611fa71b9SJerome Forissier #define MBEDTLS_ECDH_LEGACY_CONTEXT
127c84eee63SJerome Forissier #if defined(CFG_CRYPTO_DSA) || defined(CFG_CRYPTO_SM2_PKE) || \
128c84eee63SJerome Forissier 	defined(CFG_CRYPTO_SM2_KEP)
129c84eee63SJerome Forissier #define MBEDTLS_ECP_DP_SM2_ENABLED
130c84eee63SJerome Forissier #endif
131ad6cfae7SEdison Ai #endif
132ad6cfae7SEdison Ai 
13377327d7aSEdison Ai #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/
13477327d7aSEdison Ai 
135e789ada3SJens Wiklander #endif /* __MBEDTLS_CONFIG_KERNEL_H */
136