xref: /optee_os/lib/libmbedtls/include/mbedtls_config_kernel.h (revision 8ad96da2551eb82819ac3492c26c616a2de1ffce)
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)
32dddd6a26SJens Wiklander #define MBEDTLS_SHA256_C
33dddd6a26SJens Wiklander #define MBEDTLS_MD_C
34db750c42SJens Wiklander #if defined(CFG_CORE_CRYPTO_SHA256_ACCEL)
352fc5dc95SJens Wiklander #define MBEDTLS_SHA256_PROCESS_ALT
362fc5dc95SJens Wiklander #endif
37dddd6a26SJens Wiklander #endif
38dddd6a26SJens Wiklander 
39dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512)
40dddd6a26SJens Wiklander #define MBEDTLS_SHA512_C
41dddd6a26SJens Wiklander #define MBEDTLS_MD_C
42*8ad96da2SJens Wiklander #if defined(CFG_CORE_CRYPTO_SHA512_ACCEL)
43*8ad96da2SJens Wiklander #define MBEDTLS_SHA512_PROCESS_ALT
44*8ad96da2SJens Wiklander #endif
45dddd6a26SJens Wiklander #endif
46dddd6a26SJens Wiklander 
472b716cccSEdison Ai #if defined(CFG_CRYPTO_HMAC)
482b716cccSEdison Ai #define MBEDTLS_MD_C
492b716cccSEdison Ai #endif
502b716cccSEdison Ai 
51d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_AES)
52d2e5e90eSEdison Ai #define MBEDTLS_AES_C
53d2e5e90eSEdison Ai #define MBEDTLS_AES_ROM_TABLES
5410b90791SJens Wiklander #if defined(CFG_CORE_CRYPTO_AES_ACCEL)
5510b90791SJens Wiklander #define MBEDTLS_AES_ALT
5610b90791SJens Wiklander #endif
57d2e5e90eSEdison Ai #endif
58d2e5e90eSEdison Ai 
59d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_DES)
60d2e5e90eSEdison Ai #define MBEDTLS_DES_C
61d2e5e90eSEdison Ai #endif
62d2e5e90eSEdison Ai 
63d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CBC)
64d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CBC
65d2e5e90eSEdison Ai #endif
66d2e5e90eSEdison Ai 
67d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CTR)
68d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CTR
69d2e5e90eSEdison Ai #endif
70d2e5e90eSEdison Ai 
71ebc81cdcSEdison Ai #if defined(CFG_CRYPTO_CMAC)
72ebc81cdcSEdison Ai #define MBEDTLS_CMAC_C
73ebc81cdcSEdison Ai #define MBEDTLS_CIPHER_C
74ebc81cdcSEdison Ai #endif
75ebc81cdcSEdison Ai 
76a2aa5803SJens Wiklander #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_DH) || defined(CFG_CRYPTO_ECC)
77000fae55SEdison Ai #define MBEDTLS_BIGNUM_C
78f8907bbfSEdison Ai #define MBEDTLS_OID_C
79f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V15
80f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V21
81f8907bbfSEdison Ai #define MBEDTLS_PK_C
82f8907bbfSEdison Ai #define MBEDTLS_GENPRIME
83f8907bbfSEdison Ai #define MBEDTLS_CTR_DRBG_C
84f8907bbfSEdison Ai #endif
85f8907bbfSEdison Ai 
86f8907bbfSEdison Ai #if defined(CFG_CRYPTO_RSA)
87f8907bbfSEdison Ai #define MBEDTLS_RSA_C
88f8907bbfSEdison Ai #define MBEDTLS_RSA_NO_CRT
89f8907bbfSEdison Ai #endif
90f8907bbfSEdison Ai 
91ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC)
92f8907bbfSEdison Ai #define MBEDTLS_ASN1_PARSE_C
93f8907bbfSEdison Ai #define MBEDTLS_ASN1_WRITE_C
94000fae55SEdison Ai #endif
95000fae55SEdison Ai 
9634789f62SEdison Ai #if defined(CFG_CRYPTO_DH)
9734789f62SEdison Ai #define MBEDTLS_DHM_C
9834789f62SEdison Ai #endif
9934789f62SEdison Ai 
100ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_ECC)
101ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
102ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
103ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
104ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
105ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
106ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192K1_ENABLED
107ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224K1_ENABLED
108ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256K1_ENABLED
109ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP256R1_ENABLED
110ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP384R1_ENABLED
111ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP512R1_ENABLED
112ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
113ad6cfae7SEdison Ai #define MBEDTLS_ECP_C
114ad6cfae7SEdison Ai #define MBEDTLS_ECDSA_C
115ad6cfae7SEdison Ai #define MBEDTLS_ECDH_C
11611fa71b9SJerome Forissier #define MBEDTLS_ECDH_LEGACY_CONTEXT
117c84eee63SJerome Forissier #if defined(CFG_CRYPTO_DSA) || defined(CFG_CRYPTO_SM2_PKE) || \
118c84eee63SJerome Forissier 	defined(CFG_CRYPTO_SM2_KEP)
119c84eee63SJerome Forissier #define MBEDTLS_ECP_DP_SM2_ENABLED
120c84eee63SJerome Forissier #endif
121ad6cfae7SEdison Ai #endif
122ad6cfae7SEdison Ai 
12377327d7aSEdison Ai #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/
12477327d7aSEdison Ai 
125e789ada3SJens Wiklander #include <mbedtls/check_config.h>
126e789ada3SJens Wiklander 
127e789ada3SJens Wiklander #endif /* __MBEDTLS_CONFIG_KERNEL_H */
128