diff --git a/components/esp_security/src/esp_ds.c b/components/esp_security/src/esp_ds.c index ebfa0e83b17..0a9bf1a0a12 100644 --- a/components/esp_security/src/esp_ds.c +++ b/components/esp_security/src/esp_ds.c @@ -339,15 +339,17 @@ esp_err_t esp_ds_start_sign(const void *message, ds_acquire_enable(); #if SOC_KEY_MANAGER_DS_KEY_DEPLOY - if (!key_mgr_ll_is_supported()) { - assert(false && "Key manager is not supported"); - } - if (key_id == HMAC_KEY_KM) { + if (!key_mgr_ll_is_supported()) { + ds_disable_release(); + assert(false && "Key manager is not supported"); + } key_mgr_hal_set_key_usage(ESP_KEY_MGR_DS_KEY, ESP_KEY_MGR_USE_OWN_KEY); ds_hal_set_key_source(DS_KEY_SOURCE_KEY_MGR); } else { - key_mgr_hal_set_key_usage(ESP_KEY_MGR_DS_KEY, ESP_KEY_MGR_USE_EFUSE_KEY); + if (key_mgr_ll_is_supported()) { + key_mgr_hal_set_key_usage(ESP_KEY_MGR_DS_KEY, ESP_KEY_MGR_USE_EFUSE_KEY); + } ds_hal_set_key_source(DS_KEY_SOURCE_EFUSE); #endif // initiate hmac diff --git a/components/hal/ecdsa_hal.c b/components/hal/ecdsa_hal.c index 453f0cca6c5..daa9d539851 100644 --- a/components/hal/ecdsa_hal.c +++ b/components/hal/ecdsa_hal.c @@ -34,10 +34,6 @@ static void configure_ecdsa_periph(ecdsa_hal_config_t *conf) efuse_hal_set_ecdsa_key(conf->curve, conf->efuse_key_blk); #if SOC_KEY_MANAGER_ECDSA_KEY_DEPLOY - if (!key_mgr_ll_is_supported()) { - HAL_ASSERT(false && "Key manager is not supported"); - } - // Force Key Manager to use eFuse key for XTS-AES operation if (conf->curve == ECDSA_CURVE_SECP192R1) { key_mgr_hal_set_key_usage(ESP_KEY_MGR_ECDSA_192_KEY, ESP_KEY_MGR_USE_EFUSE_KEY); @@ -48,6 +44,10 @@ static void configure_ecdsa_periph(ecdsa_hal_config_t *conf) } #if SOC_KEY_MANAGER_SUPPORTED else { + if (!key_mgr_ll_is_supported()) { + HAL_ASSERT(false && "Key manager is not supported"); + } + if (conf->curve == ECDSA_CURVE_SECP192R1) { key_mgr_hal_set_key_usage(ESP_KEY_MGR_ECDSA_192_KEY, ESP_KEY_MGR_USE_OWN_KEY); } else { diff --git a/components/hal/test_apps/crypto/main/ds/test_ds.c b/components/hal/test_apps/crypto/main/ds/test_ds.c index f67b17052e3..2ccfcad1d34 100644 --- a/components/hal/test_apps/crypto/main/ds/test_ds.c +++ b/components/hal/test_apps/crypto/main/ds/test_ds.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -24,6 +24,7 @@ const static char *TAG = "test_ds"; #include "rom/hmac.h" #if SOC_KEY_MANAGER_DS_KEY_DEPLOY +#include "hal/key_mgr_hal.h" #include "hal/key_mgr_ll.h" #endif @@ -94,11 +95,15 @@ static esp_err_t esp_ds_start_sign(const void *message, const esp_ds_data_t *dat #if SOC_KEY_MANAGER_DS_KEY_DEPLOY if (key_id == HMAC_KEY_KM) { if (!key_mgr_ll_is_supported()) { - HAL_ASSERT(false && "Key manager is not supported"); + ds_disable_release(); + assert(false && "Key manager is not supported"); } - + key_mgr_hal_set_key_usage(ESP_KEY_MGR_DS_KEY, ESP_KEY_MGR_USE_OWN_KEY); ds_hal_set_key_source(DS_KEY_SOURCE_KEY_MGR); } else { + if (key_mgr_ll_is_supported()) { + key_mgr_hal_set_key_usage(ESP_KEY_MGR_DS_KEY, ESP_KEY_MGR_USE_EFUSE_KEY); + } ds_hal_set_key_source(DS_KEY_SOURCE_EFUSE); #endif hmac_hal_start();