CONFIG_MBEDTLS_SHA256_SMALLER

Enable smaller SHA-256 implementation

Use SHA256 small footprint implementation

Enable smaller SHA-256 implementation

Type: bool

Help

Enable an implementation of SHA-256 that has lower ROM footprint but also
lower performance

Help

Use a SHA-256 implementation with smaller footprint.
Note, that this implementation will also have a lower performance.
On a Cortex-M4 the size of mbedtls_sha256_process() will be reduced from ~2KB to ~0.5KB,
however it will also perform around 30% slower.
MBEDTLS_SHA256_SMALLER setting in mbed TLS config file.

Help

Enable an implementation of SHA-256 that has lower ROM footprint but also
lower performance

Direct dependencies

(MBEDTLS_MAC_SHA256_ENABLED && MBEDTLS_BUILTIN && MBEDTLS_CFG_FILE = “config-tls-generic.h” && MBEDTLS) || (VANILLA_MBEDTLS_SHA256_C && NRF_SECURITY_ADVANCED && NRF_SECURITY_ANY_BACKEND && NORDIC_SECURITY_BACKEND) || (MBEDTLS_MAC_SHA256_ENABLED && MBEDTLS_BUILTIN && MBEDTLS_CFG_FILE = “config-tls-generic.h” && MBEDTLS && 0)

(Includes any dependencies from ifs and menus.)

Defaults

  • y

  • y

Kconfig definitions

At <Zephyr>/modules/mbedtls/Kconfig.tls-generic:264

Included via <Zephyr>/Kconfig:8<Zephyr>/Kconfig.zephyr:23<Zephyr>/modules/Kconfig:6<BuildDir>/kconfig/Kconfig.modules:50<Zephyr>/modules/mbedtls/Kconfig:62

Menu path: (Top) → Modules → mbedtls (/home/runner/work/sdk-nrf/sdk-nrf/ncs/modules/crypto/mbedtls) → mbed TLS Support → TLS configuration → Ciphersuite configuration → Enable the SHA-224 and SHA-256 hash algorithms

config MBEDTLS_SHA256_SMALLER
    bool "Enable smaller SHA-256 implementation"
    default y
    depends on MBEDTLS_MAC_SHA256_ENABLED && MBEDTLS_BUILTIN && MBEDTLS_CFG_FILE = "config-tls-generic.h" && MBEDTLS
    help
      Enable an implementation of SHA-256 that has lower ROM footprint but also
      lower performance

At <nrfxlib>/nrf_security/Kconfig:1539

Included via <Zephyr>/Kconfig:8<Zephyr>/Kconfig.zephyr:23<Zephyr>/modules/Kconfig:6<BuildDir>/kconfig/Kconfig.modules:62<nrfxlib>/Kconfig.nrfxlib:13

Menu path: (Top) → Modules → nrfxlib (/home/runner/work/sdk-nrf/sdk-nrf/ncs/nrfxlib) → Nordic nrfxlib → Nordic Security → Use Nordic provided security backend → Advanced mbed TLS Configuration Settings

config MBEDTLS_SHA256_SMALLER
    bool "Use SHA256 small footprint implementation"
    depends on VANILLA_MBEDTLS_SHA256_C && NRF_SECURITY_ADVANCED && NRF_SECURITY_ANY_BACKEND && NORDIC_SECURITY_BACKEND
    help
      Use a SHA-256 implementation with smaller footprint.
      Note, that this implementation will also have a lower performance.
      On a Cortex-M4 the size of mbedtls_sha256_process() will be reduced from ~2KB to ~0.5KB,
      however it will also perform around 30% slower.
      MBEDTLS_SHA256_SMALLER setting in mbed TLS config file.

At <Zephyr>/modules/mbedtls/Kconfig.tls-generic:264

Included via <Zephyr>/Kconfig:8<Zephyr>/Kconfig.zephyr:23<Zephyr>/modules/Kconfig:66<Zephyr>/modules/mbedtls/Kconfig:62

Menu path: (Top) → Modules → mbed TLS Support → TLS configuration → Ciphersuite configuration → Enable the SHA-224 and SHA-256 hash algorithms

config MBEDTLS_SHA256_SMALLER
    bool "Enable smaller SHA-256 implementation"
    default y
    depends on MBEDTLS_MAC_SHA256_ENABLED && MBEDTLS_BUILTIN && MBEDTLS_CFG_FILE = "config-tls-generic.h" && MBEDTLS && 0
    help
      Enable an implementation of SHA-256 that has lower ROM footprint but also
      lower performance

(The ‘depends on’ condition includes propagated dependencies from ifs and menus.)