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 26*734545daSJens Wiklander #if defined(CFG_CORE_CRYPTO_SHA1_ACCEL) 27*734545daSJens Wiklander #define MBEDTLS_SHA1_PROCESS_ALT 28*734545daSJens 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 34dddd6a26SJens Wiklander #endif 35dddd6a26SJens Wiklander 36dddd6a26SJens Wiklander #if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512) 37dddd6a26SJens Wiklander #define MBEDTLS_SHA512_C 38dddd6a26SJens Wiklander #define MBEDTLS_MD_C 39dddd6a26SJens Wiklander #endif 40dddd6a26SJens Wiklander 412b716cccSEdison Ai #if defined(CFG_CRYPTO_HMAC) 422b716cccSEdison Ai #define MBEDTLS_MD_C 432b716cccSEdison Ai #endif 442b716cccSEdison Ai 45d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_AES) 46d2e5e90eSEdison Ai #define MBEDTLS_AES_C 47d2e5e90eSEdison Ai #define MBEDTLS_AES_ROM_TABLES 4810b90791SJens Wiklander #if defined(CFG_CORE_CRYPTO_AES_ACCEL) 4910b90791SJens Wiklander #define MBEDTLS_AES_ALT 5010b90791SJens Wiklander #endif 51d2e5e90eSEdison Ai #endif 52d2e5e90eSEdison Ai 53d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_DES) 54d2e5e90eSEdison Ai #define MBEDTLS_DES_C 55d2e5e90eSEdison Ai #endif 56d2e5e90eSEdison Ai 57d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CBC) 58d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CBC 59d2e5e90eSEdison Ai #endif 60d2e5e90eSEdison Ai 61d2e5e90eSEdison Ai #if defined(CFG_CRYPTO_CTR) 62d2e5e90eSEdison Ai #define MBEDTLS_CIPHER_MODE_CTR 63d2e5e90eSEdison Ai #endif 64d2e5e90eSEdison Ai 65ebc81cdcSEdison Ai #if defined(CFG_CRYPTO_CMAC) 66ebc81cdcSEdison Ai #define MBEDTLS_CMAC_C 67ebc81cdcSEdison Ai #define MBEDTLS_CIPHER_C 68ebc81cdcSEdison Ai #endif 69ebc81cdcSEdison Ai 70a2aa5803SJens Wiklander #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_DH) || defined(CFG_CRYPTO_ECC) 71000fae55SEdison Ai #define MBEDTLS_BIGNUM_C 72f8907bbfSEdison Ai #define MBEDTLS_OID_C 73f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V15 74f8907bbfSEdison Ai #define MBEDTLS_PKCS1_V21 75f8907bbfSEdison Ai #define MBEDTLS_PK_C 76f8907bbfSEdison Ai #define MBEDTLS_GENPRIME 77f8907bbfSEdison Ai #define MBEDTLS_CTR_DRBG_C 78f8907bbfSEdison Ai #endif 79f8907bbfSEdison Ai 80f8907bbfSEdison Ai #if defined(CFG_CRYPTO_RSA) 81f8907bbfSEdison Ai #define MBEDTLS_RSA_C 82f8907bbfSEdison Ai #define MBEDTLS_RSA_NO_CRT 83f8907bbfSEdison Ai #endif 84f8907bbfSEdison Ai 85ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC) 86f8907bbfSEdison Ai #define MBEDTLS_ASN1_PARSE_C 87f8907bbfSEdison Ai #define MBEDTLS_ASN1_WRITE_C 88000fae55SEdison Ai #endif 89000fae55SEdison Ai 9034789f62SEdison Ai #if defined(CFG_CRYPTO_DH) 9134789f62SEdison Ai #define MBEDTLS_DHM_C 9234789f62SEdison Ai #endif 9334789f62SEdison Ai 94ad6cfae7SEdison Ai #if defined(CFG_CRYPTO_ECC) 95ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192R1_ENABLED 96ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224R1_ENABLED 97ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256R1_ENABLED 98ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP384R1_ENABLED 99ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP521R1_ENABLED 100ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP192K1_ENABLED 101ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP224K1_ENABLED 102ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_SECP256K1_ENABLED 103ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP256R1_ENABLED 104ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP384R1_ENABLED 105ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_BP512R1_ENABLED 106ad6cfae7SEdison Ai #define MBEDTLS_ECP_DP_CURVE25519_ENABLED 107ad6cfae7SEdison Ai #define MBEDTLS_ECP_C 108ad6cfae7SEdison Ai #define MBEDTLS_ECDSA_C 109ad6cfae7SEdison Ai #define MBEDTLS_ECDH_C 110ad6cfae7SEdison Ai #endif 111ad6cfae7SEdison Ai 11277327d7aSEdison Ai #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/ 11377327d7aSEdison Ai 114e789ada3SJens Wiklander #include <mbedtls/check_config.h> 115e789ada3SJens Wiklander 116e789ada3SJens Wiklander #endif /* __MBEDTLS_CONFIG_KERNEL_H */ 117