1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* Copyright (c) 2018, Linaro Limited */ 3 #ifndef __MBEDTLS_CONFIG_KERNEL_H 4 #define __MBEDTLS_CONFIG_KERNEL_H 5 6 #ifdef ARM32 7 #define MBEDTLS_HAVE_INT32 8 #endif 9 #ifdef ARM64 10 #define MBEDTLS_HAVE_INT64 11 #endif 12 #define MBEDTLS_BIGNUM_C 13 #define MBEDTLS_GENPRIME 14 15 /* Test if Mbedtls is the primary crypto lib */ 16 #ifdef CFG_CRYPTOLIB_NAME_mbedtls 17 18 #if defined(CFG_CRYPTO_MD5) 19 #define MBEDTLS_MD5_C 20 #define MBEDTLS_MD_C 21 #endif 22 23 #if defined(CFG_CRYPTO_SHA1) 24 #define MBEDTLS_SHA1_C 25 #define MBEDTLS_MD_C 26 #if defined(CFG_CORE_CRYPTO_SHA1_ACCEL) 27 #define MBEDTLS_SHA1_PROCESS_ALT 28 #endif 29 #endif 30 31 #if defined(CFG_CRYPTO_SHA224) || defined(CFG_CRYPTO_SHA256) 32 #if defined(CFG_CRYPTO_SHA224) 33 #define MBEDTLS_SHA224_C 34 #endif 35 #if defined(CFG_CRYPTO_SHA256) 36 #define MBEDTLS_SHA256_C 37 #endif 38 #define MBEDTLS_MD_C 39 #if defined(CFG_CORE_CRYPTO_SHA256_ACCEL) 40 #define MBEDTLS_SHA256_PROCESS_ALT 41 #endif 42 #endif 43 44 #if defined(CFG_CRYPTO_SHA384) || defined(CFG_CRYPTO_SHA512) 45 #if defined(CFG_CRYPTO_SHA384) 46 #define MBEDTLS_SHA384_C 47 #endif 48 #if defined(CFG_CRYPTO_SHA512) 49 #define MBEDTLS_SHA512_C 50 #endif 51 #define MBEDTLS_MD_C 52 #if defined(CFG_CORE_CRYPTO_SHA512_ACCEL) 53 #define MBEDTLS_SHA512_PROCESS_ALT 54 #endif 55 #endif 56 57 #if defined(CFG_CRYPTO_HMAC) 58 #define MBEDTLS_MD_C 59 #endif 60 61 #if defined(CFG_CRYPTO_AES) 62 #define MBEDTLS_AES_C 63 #define MBEDTLS_AES_ROM_TABLES 64 #if defined(CFG_CORE_CRYPTO_AES_ACCEL) 65 #define MBEDTLS_AES_ALT 66 #endif 67 #endif 68 69 #if defined(CFG_CRYPTO_DES) 70 #define MBEDTLS_DES_C 71 #endif 72 73 #if defined(CFG_CRYPTO_CBC) 74 #define MBEDTLS_CIPHER_MODE_CBC 75 #endif 76 77 #if defined(CFG_CRYPTO_CTR) 78 #define MBEDTLS_CIPHER_MODE_CTR 79 #endif 80 81 #if defined(CFG_CRYPTO_CMAC) 82 #define MBEDTLS_CMAC_C 83 #define MBEDTLS_CIPHER_C 84 #endif 85 86 #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_DH) || defined(CFG_CRYPTO_ECC) 87 #define MBEDTLS_BIGNUM_C 88 #define MBEDTLS_OID_C 89 #define MBEDTLS_PKCS1_V15 90 #define MBEDTLS_PKCS1_V21 91 #define MBEDTLS_PK_C 92 #define MBEDTLS_GENPRIME 93 #define MBEDTLS_CTR_DRBG_C 94 #endif 95 96 #if defined(CFG_CRYPTO_RSA) 97 #define MBEDTLS_RSA_C 98 #define MBEDTLS_RSA_GEN_KEY_MIN_BITS 128 99 #endif 100 101 #if defined(CFG_CRYPTO_RSA) || defined(CFG_CRYPTO_ECC) 102 #define MBEDTLS_ASN1_PARSE_C 103 #define MBEDTLS_ASN1_WRITE_C 104 #endif 105 106 #if defined(CFG_CRYPTO_DH) 107 #define MBEDTLS_DHM_C 108 #endif 109 110 #if defined(CFG_CRYPTO_ECC) 111 #define MBEDTLS_ECP_DP_SECP192R1_ENABLED 112 #define MBEDTLS_ECP_DP_SECP224R1_ENABLED 113 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED 114 #define MBEDTLS_ECP_DP_SECP384R1_ENABLED 115 #define MBEDTLS_ECP_DP_SECP521R1_ENABLED 116 #define MBEDTLS_ECP_DP_SECP192K1_ENABLED 117 #define MBEDTLS_ECP_DP_SECP224K1_ENABLED 118 #define MBEDTLS_ECP_DP_SECP256K1_ENABLED 119 #define MBEDTLS_ECP_DP_BP256R1_ENABLED 120 #define MBEDTLS_ECP_DP_BP384R1_ENABLED 121 #define MBEDTLS_ECP_DP_BP512R1_ENABLED 122 #define MBEDTLS_ECP_DP_CURVE25519_ENABLED 123 #define MBEDTLS_ECP_C 124 #define MBEDTLS_ECDSA_C 125 #define MBEDTLS_ECDH_C 126 #define MBEDTLS_ECDH_LEGACY_CONTEXT 127 #if defined(CFG_CRYPTO_DSA) || defined(CFG_CRYPTO_SM2_PKE) || \ 128 defined(CFG_CRYPTO_SM2_KEP) 129 #define MBEDTLS_ECP_DP_SM2_ENABLED 130 #endif 131 #endif 132 133 #endif /*CFG_CRYPTOLIB_NAME_mbedtls*/ 134 135 #endif /* __MBEDTLS_CONFIG_KERNEL_H */ 136