Merge branch 'fix/hmac-ds-reset-corrupts-concurrent-mpi_v5.5' into 'release/v5.5'

fix(esp_security): don't reset DS peripheral in esp_hmac_calculate (v5.5)

See merge request espressif/esp-idf!52204
This commit is contained in:
Mahavir Jain
2026-09-03 09:58:22 +05:30
+1 -5
View File
@@ -70,13 +70,11 @@ esp_err_t esp_hmac_calculate(hmac_key_id_t key_id,
esp_crypto_hmac_lock_acquire(); esp_crypto_hmac_lock_acquire();
// We also enable SHA and DS here. SHA is used by HMAC, DS will otherwise hold SHA in reset state. // SHA is used by HMAC, so enable it here.
esp_crypto_hmac_enable_periph_clk(true); esp_crypto_hmac_enable_periph_clk(true);
esp_crypto_sha_enable_periph_clk(true); esp_crypto_sha_enable_periph_clk(true);
esp_crypto_ds_enable_periph_clk(true);
#if SOC_KEY_MANAGER_HMAC_KEY_DEPLOY #if SOC_KEY_MANAGER_HMAC_KEY_DEPLOY
/* Key Manager holds the key usage selector register(efuse vs own key). /* Key Manager holds the key usage selector register(efuse vs own key).
Thus, we need to enable the Key Manager peripheral clock to ensure Thus, we need to enable the Key Manager peripheral clock to ensure
@@ -149,8 +147,6 @@ esp_err_t esp_hmac_calculate(hmac_key_id_t key_id,
esp_crypto_key_mgr_enable_periph_clk(false); esp_crypto_key_mgr_enable_periph_clk(false);
#endif /* SOC_KEY_MANAGER_HMAC_KEY_DEPLOY */ #endif /* SOC_KEY_MANAGER_HMAC_KEY_DEPLOY */
esp_crypto_ds_enable_periph_clk(false);
esp_crypto_sha_enable_periph_clk(false); esp_crypto_sha_enable_periph_clk(false);
esp_crypto_hmac_enable_periph_clk(false); esp_crypto_hmac_enable_periph_clk(false);