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