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) 32*32b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA224) 33*32b31808SJens Wiklander #define MBEDTLS_SHA224_C 34*32b31808SJens Wiklander #endif 35*32b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA256) 36dddd6a26SJens Wiklander #define MBEDTLS_SHA256_C 37*32b31808SJens 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) 45*32b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA384) 46*32b31808SJens Wiklander #define MBEDTLS_SHA384_C 47*32b31808SJens Wiklander #endif 48*32b31808SJens Wiklander #if defined(CFG_CRYPTO_SHA512) 49dddd6a26SJens Wiklander #define MBEDTLS_SHA512_C 50*32b31808SJens 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 98f8907bbfSEdison Ai #endif 99f8907bbfSEdison Ai 100ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC) 101f8907bbfSEdison Ai #define MBEDTLS_ASN1_PARSE_C 102f8907bbfSEdison Ai #define MBEDTLS_ASN1_WRITE_C 103000fae55SEdison Ai #endif 104000fae55SEdison Ai 10534789f62SEdison Ai #if defined(CFG_CRYPTO_DH) 10634789f62SEdison Ai #define MBEDTLS_DHM_C 10734789f62SEdison Ai #endif 10834789f62SEdison Ai 109ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_ECC) 110ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192R1_ENABLED 111ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224R1_ENABLED 112ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256R1_ENABLED 113ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP384R1_ENABLED 114ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP521R1_ENABLED 115ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192K1_ENABLED 116ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224K1_ENABLED 117ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256K1_ENABLED 118ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP256R1_ENABLED 119ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP384R1_ENABLED 120ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP512R1_ENABLED 121ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_CURVE25519_ENABLED 122ad6cfae7SEdison Ai #define MBEDTLS_ECP_C 123ad6cfae7SEdison Ai #define MBEDTLS_ECDSA_C 124ad6cfae7SEdison Ai #define MBEDTLS_ECDH_C 12511fa71b9SJerome Forissier #define MBEDTLS_ECDH_LEGACY_CONTEXT 126c84eee63SJerome Forissier #if defined(CFG_CRYPTO_DSA) || defined(CFG_CRYPTO_SM2_PKE) || \ 127c84eee63SJerome Forissier defined(CFG_CRYPTO_SM2_KEP) 128c84eee63SJerome Forissier #define MBEDTLS_ECP_DP_SM2_ENABLED 129c84eee63SJerome Forissier #endif 130ad6cfae7SEdison Ai #endif 131ad6cfae7SEdison Ai 13277327d7aSEdison Ai #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/ 13377327d7aSEdison Ai 134e789ada3SJens Wiklander #include <mbedtls/check_config.h> 135e789ada3SJens Wiklander 136e789ada3SJens Wiklander #endif /* __MBEDTLS_CONFIG_KERNEL_H */ 137