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 66000fae55SEdison Ai #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_DSA) || \ 67000fae55SEdison Ai defined(CFG_CRYPTO_DH) || defined(CFG_CRYPTO_ECC) 68000fae55SEdison Ai #define MBEDTLS_BIGNUM_C 69f8907bbfSEdison Ai #define MBEDTLS_OID_C 70f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V15 71f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V21 72f8907bbfSEdison Ai #define MBEDTLS_PK_C 73f8907bbfSEdison Ai #define MBEDTLS_GENPRIME 74f8907bbfSEdison Ai #define MBEDTLS_CTR_DRBG_C 75f8907bbfSEdison Ai #endif 76f8907bbfSEdison Ai 77f8907bbfSEdison Ai #if defined(CFG_CRYPTO_RSA) 78f8907bbfSEdison Ai #define MBEDTLS_RSA_C 79f8907bbfSEdison Ai #define MBEDTLS_RSA_NO_CRT 80f8907bbfSEdison Ai #endif 81f8907bbfSEdison Ai 82f8907bbfSEdison Ai #if defined(CFG_CRYPTO_RSA) 83f8907bbfSEdison Ai #define MBEDTLS_ASN1_PARSE_C 84f8907bbfSEdison Ai #define MBEDTLS_ASN1_WRITE_C 85000fae55SEdison Ai #endif 86000fae55SEdison Ai 87*34789f62SEdison Ai #if defined(CFG_CRYPTO_DH) 88*34789f62SEdison Ai #define MBEDTLS_DHM_C 89*34789f62SEdison Ai #endif 90*34789f62SEdison Ai 9177327d7aSEdison Ai #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/ 9277327d7aSEdison Ai 93e789ada3SJens Wiklander #include <mbedtls/check_config.h> 94e789ada3SJens Wiklander 95e789ada3SJens Wiklander #endif /* __MBEDTLS_CONFIG_KERNEL_H */ 96