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 26dddd6a26SJens Wiklander #endif 27dddd6a26SJens Wiklander 28dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA224) || defined(CFG_CRYPTO_SHA256) 29dddd6a26SJens Wiklander #define MBEDTLS_SHA256_C 30dddd6a26SJens Wiklander #define MBEDTLS_MD_C 31dddd6a26SJens Wiklander #endif 32dddd6a26SJens Wiklander 33dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512) 34dddd6a26SJens Wiklander #define MBEDTLS_SHA512_C 35dddd6a26SJens Wiklander #define MBEDTLS_MD_C 36dddd6a26SJens Wiklander #endif 37dddd6a26SJens Wiklander 382b716cccSEdison Ai #if defined(CFG_CRYPTO_HMAC) 392b716cccSEdison Ai #define MBEDTLS_MD_C 402b716cccSEdison Ai #endif 412b716cccSEdison Ai 42d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_AES) 43d2e5e90eSEdison Ai #define MBEDTLS_AES_C 44d2e5e90eSEdison Ai #define MBEDTLS_AES_ROM_TABLES 45*10b90791SJens Wiklander #if defined(CFG_CORE_CRYPTO_AES_ACCEL) 46*10b90791SJens Wiklander #define MBEDTLS_AES_ALT 47*10b90791SJens Wiklander #endif 48d2e5e90eSEdison Ai #endif 49d2e5e90eSEdison Ai 50d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_DES) 51d2e5e90eSEdison Ai #define MBEDTLS_DES_C 52d2e5e90eSEdison Ai #endif 53d2e5e90eSEdison Ai 54d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CBC) 55d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CBC 56d2e5e90eSEdison Ai #endif 57d2e5e90eSEdison Ai 58d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CTR) 59d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CTR 60d2e5e90eSEdison Ai #endif 61d2e5e90eSEdison Ai 62ebc81cdcSEdison Ai #if defined(CFG_CRYPTO_CMAC) 63ebc81cdcSEdison Ai #define MBEDTLS_CMAC_C 64ebc81cdcSEdison Ai #define MBEDTLS_CIPHER_C 65ebc81cdcSEdison Ai #endif 66ebc81cdcSEdison Ai 67a2aa5803SJens Wiklander #if defined(CFG_CRYPTO_RSA) || 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 82ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC) 83f8907bbfSEdison Ai #define MBEDTLS_ASN1_PARSE_C 84f8907bbfSEdison Ai #define MBEDTLS_ASN1_WRITE_C 85000fae55SEdison Ai #endif 86000fae55SEdison Ai 8734789f62SEdison Ai #if defined(CFG_CRYPTO_DH) 8834789f62SEdison Ai #define MBEDTLS_DHM_C 8934789f62SEdison Ai #endif 9034789f62SEdison Ai 91ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_ECC) 92ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192R1_ENABLED 93ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224R1_ENABLED 94ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256R1_ENABLED 95ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP384R1_ENABLED 96ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP521R1_ENABLED 97ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192K1_ENABLED 98ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224K1_ENABLED 99ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256K1_ENABLED 100ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP256R1_ENABLED 101ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP384R1_ENABLED 102ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP512R1_ENABLED 103ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_CURVE25519_ENABLED 104ad6cfae7SEdison Ai #define MBEDTLS_ECP_C 105ad6cfae7SEdison Ai #define MBEDTLS_ECDSA_C 106ad6cfae7SEdison Ai #define MBEDTLS_ECDH_C 107ad6cfae7SEdison Ai #endif 108ad6cfae7SEdison Ai 10977327d7aSEdison Ai #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/ 11077327d7aSEdison Ai 111e789ada3SJens Wiklander #include <mbedtls/check_config.h> 112e789ada3SJens Wiklander 113e789ada3SJens Wiklander #endif /* __MBEDTLS_CONFIG_KERNEL_H */ 114