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