@@ -35,6 +35,7 @@ static const char *TAG = "esp_key_mgr";
3535static _lock_t s_key_mgr_ecdsa_key_lock ;
3636static _lock_t s_key_mgr_xts_aes_key_lock ;
3737static _lock_t s_key_mgr_hmac_key_lock ;
38+ static _lock_t s_key_mgr_ds_key_lock ;
3839
3940ESP_STATIC_ASSERT (sizeof (esp_key_mgr_key_recovery_info_t ) == sizeof (struct huk_key_block ), "Size of esp_key_mgr_key_recovery_info_t should match huk_key_block (from ROM)" );
4041
@@ -57,6 +58,9 @@ static void esp_key_mgr_acquire_key_lock(esp_key_mgr_key_type_t key_type)
5758 case ESP_KEY_MGR_HMAC_KEY :
5859 _lock_acquire (& s_key_mgr_hmac_key_lock );
5960 break ;
61+ case ESP_KEY_MGR_DS_KEY :
62+ _lock_acquire (& s_key_mgr_ds_key_lock );
63+ break ;
6064 default :
6165 ESP_LOGE (TAG , "Invalid key type" );
6266 break ;
@@ -79,6 +83,9 @@ static void esp_key_mgr_release_key_lock(esp_key_mgr_key_type_t key_type)
7983 case ESP_KEY_MGR_HMAC_KEY :
8084 _lock_release (& s_key_mgr_hmac_key_lock );
8185 break ;
86+ case ESP_KEY_MGR_DS_KEY :
87+ _lock_release (& s_key_mgr_ds_key_lock );
88+ break ;
8289 default :
8390 ESP_LOGE (TAG , "Invalid key type" );
8491 break ;
@@ -351,6 +358,8 @@ esp_err_t esp_key_mgr_deploy_key_in_aes_mode(const esp_key_mgr_aes_key_config_t
351358 aes_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 ;
352359 } else if (key_type == ESP_KEY_MGR_HMAC_KEY ) {
353360 aes_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_HMAC ;
361+ } else if (key_type == ESP_KEY_MGR_DS_KEY ) {
362+ aes_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
354363 } else {
355364 ESP_LOGE (TAG , "Invalid key type" );
356365 return ESP_ERR_INVALID_ARG ;
@@ -472,6 +481,8 @@ esp_err_t esp_key_mgr_activate_key(esp_key_mgr_key_recovery_info_t *key_recovery
472481 key_purpose = ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 ;
473482 } else if (key_type == ESP_KEY_MGR_HMAC_KEY ) {
474483 key_purpose = ESP_KEY_MGR_KEY_PURPOSE_HMAC ;
484+ } else if (key_type == ESP_KEY_MGR_DS_KEY ) {
485+ key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
475486 } else {
476487 ESP_LOGE (TAG , "Invalid key type" );
477488 return ESP_ERR_INVALID_ARG ;
@@ -643,6 +654,9 @@ esp_err_t esp_key_mgr_deploy_key_in_ecdh0_mode(const esp_key_mgr_ecdh0_key_confi
643654 } else if (key_type == ESP_KEY_MGR_HMAC_KEY ) {
644655 ecdh0_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_HMAC ;
645656 ecdh0_deploy_config .ecdh0_key_info = ecdh0_key_info -> k2_G [0 ];
657+ } else if (key_type == ESP_KEY_MGR_DS_KEY ) {
658+ ecdh0_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
659+ ecdh0_deploy_config .ecdh0_key_info = ecdh0_key_info -> k2_G [0 ];
646660 } else {
647661 ESP_LOGE (TAG , "Invalid key type" );
648662 return ESP_ERR_INVALID_ARG ;
@@ -777,6 +791,8 @@ esp_err_t esp_key_mgr_deploy_key_in_random_mode(const esp_key_mgr_random_key_con
777791 random_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 ;
778792 } else if (key_type == ESP_KEY_MGR_HMAC_KEY ) {
779793 random_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_HMAC ;
794+ } else if (key_type == ESP_KEY_MGR_DS_KEY ) {
795+ random_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
780796 } else {
781797 ESP_LOGE (TAG , "Invalid key type" );
782798 return ESP_ERR_INVALID_ARG ;
0 commit comments