diff mbox series

[v6,08/28] mbedtls: Enable smaller implementation for SHA256/512

Message ID 20240816214436.1877263-9-raymond.mao@linaro.org
State Changes Requested
Delegated to: Tom Rini
Headers show
Series Integrate MbedTLS v3.6 LTS with U-Boot | expand

Commit Message

Raymond Mao Aug. 16, 2024, 9:43 p.m. UTC
Smaller implementation for SHA256 and SHA512 helps to reduce the
ROM footprint though it has a certain impact on performance.
As a trade-off, enable it as a default config when MbedTLS is
enabled can reduce the target size significantly with acceptable
performace loss.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
---
Changes in v6
- Initial patch

 lib/mbedtls/Kconfig              | 24 ++++++++++++++++++++++++
 lib/mbedtls/mbedtls_def_config.h |  6 ++++++
 2 files changed, 30 insertions(+)

Comments

Tom Rini Aug. 19, 2024, 9:03 p.m. UTC | #1
On Fri, Aug 16, 2024 at 02:43:57PM -0700, Raymond Mao wrote:

> Smaller implementation for SHA256 and SHA512 helps to reduce the
> ROM footprint though it has a certain impact on performance.
> As a trade-off, enable it as a default config when MbedTLS is
> enabled can reduce the target size significantly with acceptable
> performace loss.
> 
> Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
> ---
> Changes in v6
> - Initial patch
> 
>  lib/mbedtls/Kconfig              | 24 ++++++++++++++++++++++++
>  lib/mbedtls/mbedtls_def_config.h |  6 ++++++
>  2 files changed, 30 insertions(+)
> 
> diff --git a/lib/mbedtls/Kconfig b/lib/mbedtls/Kconfig
> index 12f8c965f5a..0e22edf1b6c 100644
> --- a/lib/mbedtls/Kconfig
> +++ b/lib/mbedtls/Kconfig
> @@ -151,18 +151,42 @@ config SHA1_MBEDTLS
>  config SHA256_MBEDTLS
>  	bool "Enable SHA256 support with MbedTLS crypto library"
>  	depends on MBEDTLS_LIB_CRYPTO && SHA256
> +	select SHA256_SMALLER
>  	help
>  	  This option enables support of hashing using SHA256 algorithm
>  	  with MbedTLS crypto library.
>  
> +if SHA256_MBEDTLS
> +
> +config SHA256_SMALLER
> +	bool "Enable SHA256 smaller implementation with MbedTLS crypto library"
> +	depends on SHA256_MBEDTLS
> +	help
> +	  This option enables support of hashing using SHA256 algorithm
> +	  smaller implementation with MbedTLS crypto library.
> +
> +endif

For each of these, they shouldn't be select'd, they just need to depends
on the right option (SHA256_MBEDTLS, etc) and be default y.
diff mbox series

Patch

diff --git a/lib/mbedtls/Kconfig b/lib/mbedtls/Kconfig
index 12f8c965f5a..0e22edf1b6c 100644
--- a/lib/mbedtls/Kconfig
+++ b/lib/mbedtls/Kconfig
@@ -151,18 +151,42 @@  config SHA1_MBEDTLS
 config SHA256_MBEDTLS
 	bool "Enable SHA256 support with MbedTLS crypto library"
 	depends on MBEDTLS_LIB_CRYPTO && SHA256
+	select SHA256_SMALLER
 	help
 	  This option enables support of hashing using SHA256 algorithm
 	  with MbedTLS crypto library.
 
+if SHA256_MBEDTLS
+
+config SHA256_SMALLER
+	bool "Enable SHA256 smaller implementation with MbedTLS crypto library"
+	depends on SHA256_MBEDTLS
+	help
+	  This option enables support of hashing using SHA256 algorithm
+	  smaller implementation with MbedTLS crypto library.
+
+endif
+
 config SHA512_MBEDTLS
 	bool "Enable SHA512 support with MbedTLS crypto library"
 	depends on MBEDTLS_LIB_CRYPTO && SHA512
 	default y if TI_SECURE_DEVICE && FIT_SIGNATURE
+	select SHA512_SMALLER
 	help
 	  This option enables support of hashing using SHA512 algorithm
 	  with MbedTLS crypto library.
 
+if SHA512_MBEDTLS
+
+config SHA512_SMALLER
+	bool "Enable SHA512 smaller implementation with MbedTLS crypto library"
+	depends on SHA512_MBEDTLS
+	help
+	  This option enables support of hashing using SHA512 algorithm
+	  smaller implementation with MbedTLS crypto library.
+
+endif
+
 config SHA384_MBEDTLS
 	bool "Enable SHA384 support with MbedTLS crypto library"
 	depends on MBEDTLS_LIB_CRYPTO && SHA384
diff --git a/lib/mbedtls/mbedtls_def_config.h b/lib/mbedtls/mbedtls_def_config.h
index 38de6b0b9af..750db8705e8 100644
--- a/lib/mbedtls/mbedtls_def_config.h
+++ b/lib/mbedtls/mbedtls_def_config.h
@@ -25,6 +25,9 @@ 
 
 #if CONFIG_IS_ENABLED(SHA256)
 #define MBEDTLS_SHA256_C
+#if CONFIG_IS_ENABLED(SHA256_SMALLER)
+#define MBEDTLS_SHA256_SMALLER
+#endif
 #endif
 
 #if CONFIG_IS_ENABLED(SHA384)
@@ -33,6 +36,9 @@ 
 
 #if CONFIG_IS_ENABLED(SHA512)
 #define MBEDTLS_SHA512_C
+#if CONFIG_IS_ENABLED(SHA512_SMALLER)
+#define MBEDTLS_SHA512_SMALLER
+#endif
 #endif
 
 #endif /* CONFIG_IS_ENABLED(MBEDTLS_LIB_CRYPTO) */