xref: /optee_os/lib/libmbedtls/include/mbedtls_config_kernel.h (revision a2aa5803d4e4980ebd426c19889f9e5a2b573832)
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 
6e789ada3SJens Wiklander #ifdef CFG_CORE_MBEDTLS_MPI
7c6e2ead3SJens Wiklander #ifdef ARM32
8c6e2ead3SJens Wiklander #define MBEDTLS_HAVE_INT32
9c6e2ead3SJens Wiklander #endif
10c6e2ead3SJens Wiklander #ifdef ARM64
11c6e2ead3SJens Wiklander #define MBEDTLS_HAVE_INT64
12c6e2ead3SJens Wiklander #endif
13e789ada3SJens Wiklander #define MBEDTLS_BIGNUM_C
14e789ada3SJens Wiklander #define MBEDTLS_GENPRIME
15e789ada3SJens Wiklander #endif
16e789ada3SJens Wiklander 
1777327d7aSEdison Ai /* Test if Mbedtls is the primary crypto lib */
1877327d7aSEdison Ai #ifdef CFG_CRYPTOLIB_NAME_mbedtls
1977327d7aSEdison Ai 
20dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_MD5)
21dddd6a26SJens Wiklander #define MBEDTLS_MD5_C
22dddd6a26SJens Wiklander #define MBEDTLS_MD_C
23dddd6a26SJens Wiklander #endif
24dddd6a26SJens Wiklander 
25dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA1)
26dddd6a26SJens Wiklander #define MBEDTLS_SHA1_C
27dddd6a26SJens Wiklander #define MBEDTLS_MD_C
28dddd6a26SJens Wiklander #endif
29dddd6a26SJens Wiklander 
30dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA224) || defined(CFG_CRYPTO_SHA256)
31dddd6a26SJens Wiklander #define MBEDTLS_SHA256_C
32dddd6a26SJens Wiklander #define MBEDTLS_MD_C
33dddd6a26SJens Wiklander #endif
34dddd6a26SJens Wiklander 
35dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512)
36dddd6a26SJens Wiklander #define MBEDTLS_SHA512_C
37dddd6a26SJens Wiklander #define MBEDTLS_MD_C
38dddd6a26SJens Wiklander #endif
39dddd6a26SJens Wiklander 
402b716cccSEdison Ai #if defined(CFG_CRYPTO_HMAC)
412b716cccSEdison Ai #define MBEDTLS_MD_C
422b716cccSEdison Ai #endif
432b716cccSEdison Ai 
44d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_AES)
45d2e5e90eSEdison Ai #define MBEDTLS_AES_C
46d2e5e90eSEdison Ai #define MBEDTLS_AES_ROM_TABLES
47d2e5e90eSEdison Ai #endif
48d2e5e90eSEdison Ai 
49d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_DES)
50d2e5e90eSEdison Ai #define MBEDTLS_DES_C
51d2e5e90eSEdison Ai #endif
52d2e5e90eSEdison Ai 
53d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CBC)
54d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CBC
55d2e5e90eSEdison Ai #endif
56d2e5e90eSEdison Ai 
57d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CTR)
58d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CTR
59d2e5e90eSEdison Ai #endif
60d2e5e90eSEdison Ai 
61ebc81cdcSEdison Ai #if defined(CFG_CRYPTO_CMAC)
62ebc81cdcSEdison Ai #define MBEDTLS_CMAC_C
63ebc81cdcSEdison Ai #define MBEDTLS_CIPHER_C
64ebc81cdcSEdison Ai #endif
65ebc81cdcSEdison Ai 
66*a2aa5803SJens Wiklander #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_DH) || defined(CFG_CRYPTO_ECC)
67000fae55SEdison Ai #define MBEDTLS_BIGNUM_C
68f8907bbfSEdison Ai #define MBEDTLS_OID_C
69f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V15
70f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V21
71f8907bbfSEdison Ai #define MBEDTLS_PK_C
72f8907bbfSEdison Ai #define MBEDTLS_GENPRIME
73f8907bbfSEdison Ai #define MBEDTLS_CTR_DRBG_C
74f8907bbfSEdison Ai #endif
75f8907bbfSEdison Ai 
76f8907bbfSEdison Ai #if defined(CFG_CRYPTO_RSA)
77f8907bbfSEdison Ai #define MBEDTLS_RSA_C
78f8907bbfSEdison Ai #define MBEDTLS_RSA_NO_CRT
79f8907bbfSEdison Ai #endif
80f8907bbfSEdison Ai 
81ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC)
82f8907bbfSEdison Ai #define MBEDTLS_ASN1_PARSE_C
83f8907bbfSEdison Ai #define MBEDTLS_ASN1_WRITE_C
84000fae55SEdison Ai #endif
85000fae55SEdison Ai 
8634789f62SEdison Ai #if defined(CFG_CRYPTO_DH)
8734789f62SEdison Ai #define MBEDTLS_DHM_C
8834789f62SEdison Ai #endif
8934789f62SEdison Ai 
90ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_ECC)
91ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192R1_ENABLED
92ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224R1_ENABLED
93ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
94ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP384R1_ENABLED
95ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP521R1_ENABLED
96ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192K1_ENABLED
97ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224K1_ENABLED
98ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256K1_ENABLED
99ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP256R1_ENABLED
100ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP384R1_ENABLED
101ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP512R1_ENABLED
102ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
103ad6cfae7SEdison Ai #define MBEDTLS_ECP_C
104ad6cfae7SEdison Ai #define MBEDTLS_ECDSA_C
105ad6cfae7SEdison Ai #define MBEDTLS_ECDH_C
106ad6cfae7SEdison Ai #endif
107ad6cfae7SEdison Ai 
10877327d7aSEdison Ai #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/
10977327d7aSEdison Ai 
110e789ada3SJens Wiklander #include <mbedtls/check_config.h>
111e789ada3SJens Wiklander 
112e789ada3SJens Wiklander #endif /* __MBEDTLS_CONFIG_KERNEL_H */
113