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