@@ -27,6 +27,7 @@ static _lock_t s_key_mgr_ecdsa_key_lock;
2727static _lock_t s_key_mgr_xts_aes_key_lock ;
2828static _lock_t s_key_mgr_hmac_key_lock ;
2929static _lock_t s_key_mgr_ds_key_lock ;
30+ static _lock_t s_key_mgr_psram_key_lock ;
3031
3132ESP_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)" );
3233ESP_STATIC_ASSERT (sizeof (esp_key_mgr_key_info_t ) == sizeof (struct key_info ), "Size of esp_key_mgr_key_info_t should match key_info (from ROM)" );
@@ -50,6 +51,10 @@ static void esp_key_mgr_acquire_key_lock(esp_key_mgr_key_type_t key_type)
5051 case ESP_KEY_MGR_DS_KEY :
5152 _lock_acquire (& s_key_mgr_ds_key_lock );
5253 break ;
54+ case ESP_KEY_MGR_PSRAM_128_KEY :
55+ case ESP_KEY_MGR_PSRAM_256_KEY :
56+ _lock_acquire (& s_key_mgr_psram_key_lock );
57+ break ;
5358 default :
5459 ESP_LOGE (TAG , "Invalid key type" );
5560 break ;
@@ -75,6 +80,10 @@ static void esp_key_mgr_release_key_lock(esp_key_mgr_key_type_t key_type)
7580 case ESP_KEY_MGR_DS_KEY :
7681 _lock_release (& s_key_mgr_ds_key_lock );
7782 break ;
83+ case ESP_KEY_MGR_PSRAM_128_KEY :
84+ case ESP_KEY_MGR_PSRAM_256_KEY :
85+ _lock_release (& s_key_mgr_psram_key_lock );
86+ break ;
7887 default :
7988 ESP_LOGE (TAG , "Invalid key type" );
8089 break ;
@@ -241,7 +250,7 @@ static esp_err_t key_mgr_deploy_key_aes_mode(aes_deploy_config_t *config)
241250 key_mgr_wait_for_state (ESP_KEY_MGR_STATE_IDLE );
242251
243252 if ((!key_mgr_hal_is_huk_valid ()) || (!config -> huk_deployed )) {
244- // For purpose ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 this part shall be already executed
253+ // For purpose ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 or ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 this part shall be already executed
245254 huk_deploy_config_t huk_deploy_config = {};
246255 huk_deploy_config .use_pre_generated_huk_info = config -> key_config -> use_pre_generated_huk_info ;
247256 huk_deploy_config .pre_generated_huk_info = & config -> key_config -> huk_info ;
@@ -269,10 +278,10 @@ static esp_err_t key_mgr_deploy_key_aes_mode(aes_deploy_config_t *config)
269278 // Set key length for XTS-AES key
270279 esp_key_mgr_key_type_t key_type = (esp_key_mgr_key_type_t ) config -> key_config -> key_type ;
271280
272- if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY ) {
273- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_256 );
274- } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
275- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_512 );
281+ if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY || key_type == ESP_KEY_MGR_PSRAM_128_KEY ) {
282+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_256 );
283+ } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
284+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_512 );
276285 }
277286
278287 if (config -> key_config -> use_pre_generated_sw_init_key ) {
@@ -310,7 +319,7 @@ static esp_err_t key_mgr_deploy_key_aes_mode(aes_deploy_config_t *config)
310319 key_mgr_hal_read_public_info (key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
311320 ESP_LOG_BUFFER_HEX_LEVEL ("KEY_RECOVERY_INFO" , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE , ESP_LOG_DEBUG );
312321
313- if (config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 ) {
322+ if (config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 || config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_1 ) {
314323 if (!key_mgr_hal_is_key_deployment_valid (config -> key_config -> key_type )) {
315324 ESP_LOGE (TAG , "Key deployment is not valid" );
316325 heap_caps_free (key_recovery_info );
@@ -323,7 +332,7 @@ static esp_err_t key_mgr_deploy_key_aes_mode(aes_deploy_config_t *config)
323332 key_mgr_hal_continue ();
324333 key_mgr_wait_for_state (ESP_KEY_MGR_STATE_IDLE );
325334
326- if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ) {
335+ if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 || config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ) {
327336 memcpy (config -> key_info -> key_info [1 ].info , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
328337 config -> key_info -> key_info [1 ].crc = esp_rom_crc32_le (0 , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
329338
@@ -372,6 +381,12 @@ esp_err_t esp_key_mgr_deploy_key_in_aes_mode(const esp_key_mgr_aes_key_config_t
372381 case ESP_KEY_MGR_DS_KEY :
373382 aes_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
374383 break ;
384+ case ESP_KEY_MGR_PSRAM_128_KEY :
385+ aes_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_128 ;
386+ break ;
387+ case ESP_KEY_MGR_PSRAM_256_KEY :
388+ aes_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_1 ;
389+ break ;
375390 default :
376391 ESP_LOGE (TAG , "Invalid key type" );
377392 return ESP_ERR_INVALID_ARG ;
@@ -387,8 +402,8 @@ esp_err_t esp_key_mgr_deploy_key_in_aes_mode(const esp_key_mgr_aes_key_config_t
387402
388403 aes_deploy_config .huk_deployed = true;
389404
390- if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
391- aes_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ;
405+ if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
406+ aes_deploy_config .key_purpose = key_type == ESP_KEY_MGR_XTS_AES_256_KEY ? ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 : ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ;
392407 aes_deploy_config .k1_encrypted = key_config -> k1_encrypted [1 ];
393408 esp_ret = key_mgr_deploy_key_aes_mode (& aes_deploy_config );
394409 if (esp_ret != ESP_OK ) {
@@ -437,18 +452,18 @@ static esp_err_t key_mgr_recover_key(key_recovery_config_t *config)
437452
438453 // Set AES-XTS key len
439454 esp_key_mgr_key_type_t key_type = (esp_key_mgr_key_type_t ) config -> key_recovery_info -> key_type ;
440- if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY ) {
441- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_256 );
442- } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
443- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_512 );
455+ if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY || key_type == ESP_KEY_MGR_PSRAM_128_KEY ) {
456+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_256 );
457+ } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
458+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_512 );
444459 }
445460
446461 key_mgr_hal_set_key_purpose (config -> key_purpose );
447462 key_mgr_hal_start ();
448463 key_mgr_hal_continue ();
449464 key_mgr_wait_for_state (ESP_KEY_MGR_STATE_LOAD );
450465
451- if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ) {
466+ if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 || config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ) {
452467 if (!check_key_info_validity (& config -> key_recovery_info -> key_info [1 ])) {
453468 ESP_LOGE (TAG , "Key info not valid" );
454469 return ESP_FAIL ;
@@ -510,6 +525,12 @@ esp_err_t esp_key_mgr_activate_key(esp_key_mgr_key_recovery_info_t *key_recovery
510525 case ESP_KEY_MGR_DS_KEY :
511526 key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
512527 break ;
528+ case ESP_KEY_MGR_PSRAM_128_KEY :
529+ key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_128 ;
530+ break ;
531+ case ESP_KEY_MGR_PSRAM_256_KEY :
532+ key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_1 ;
533+ break ;
513534 default :
514535 ESP_LOGE (TAG , "Invalid key type" );
515536 return ESP_ERR_INVALID_ARG ;
@@ -531,8 +552,8 @@ esp_err_t esp_key_mgr_activate_key(esp_key_mgr_key_recovery_info_t *key_recovery
531552 goto cleanup ;
532553 }
533554
534- if (key_recovery_info -> key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
535- key_recovery_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ;
555+ if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
556+ key_recovery_config .key_purpose = key_type == ESP_KEY_MGR_XTS_AES_256_KEY ? ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 : ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ;
536557 esp_ret = key_mgr_recover_key (& key_recovery_config );
537558 if (esp_ret != ESP_OK ) {
538559 ESP_LOGE (TAG , "Failed to recover key" );
@@ -545,7 +566,7 @@ esp_err_t esp_key_mgr_activate_key(esp_key_mgr_key_recovery_info_t *key_recovery
545566 key_mgr_hal_set_key_usage (key_type , ESP_KEY_MGR_USE_OWN_KEY );
546567 esp_key_mgr_release_key_lock (key_type );
547568
548- ESP_LOGD (TAG , "Key activation for type %d successful" , key_recovery_info -> key_type );
569+ ESP_LOGD (TAG , "Key activation for type %d successful" , key_type );
549570 return ESP_OK ;
550571
551572cleanup :
@@ -577,7 +598,7 @@ static esp_err_t key_mgr_deploy_key_ecdh0_mode(ecdh0_deploy_config_t *config)
577598 key_mgr_wait_for_state (ESP_KEY_MGR_STATE_IDLE );
578599
579600 if ((!key_mgr_hal_is_huk_valid ()) || (!config -> huk_deployed )) {
580- // For purpose ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 this part shall be already executed
601+ // For purpose ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 or ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 this part shall be already executed
581602 huk_deploy_config_t huk_deploy_config ;
582603 huk_deploy_config .use_pre_generated_huk_info = config -> key_config -> use_pre_generated_huk_info ;
583604 huk_deploy_config .pre_generated_huk_info = & config -> key_config -> huk_info ;
@@ -600,13 +621,13 @@ static esp_err_t key_mgr_deploy_key_ecdh0_mode(ecdh0_deploy_config_t *config)
600621
601622 // Set AES-XTS key len
602623 esp_key_mgr_key_type_t key_type = (esp_key_mgr_key_type_t ) config -> key_config -> key_type ;
603- if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY ) {
604- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_256 );
605- } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
606- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_512 );
624+ if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY || key_type == ESP_KEY_MGR_PSRAM_128_KEY ) {
625+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_256 );
626+ } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
627+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_512 );
607628 }
608629
609- // Set key purpose (XTS/ECDSA)
630+ // Set key purpose
610631 key_mgr_hal_set_key_purpose (config -> key_purpose );
611632 key_mgr_hal_start ();
612633 key_mgr_hal_continue ();
@@ -628,7 +649,7 @@ static esp_err_t key_mgr_deploy_key_ecdh0_mode(ecdh0_deploy_config_t *config)
628649
629650 ESP_LOGD (TAG , "HUK deployed is valid" );
630651
631- if (config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 ) {
652+ if (config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 || config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_1 ) {
632653 if (!key_mgr_hal_is_key_deployment_valid (config -> key_config -> key_type )) {
633654 ESP_LOGE (TAG , "Key deployment is not valid" );
634655 heap_caps_free (key_recovery_info );
@@ -641,7 +662,7 @@ static esp_err_t key_mgr_deploy_key_ecdh0_mode(ecdh0_deploy_config_t *config)
641662 key_mgr_hal_continue ();
642663 key_mgr_wait_for_state (ESP_KEY_MGR_STATE_IDLE );
643664
644- if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ) {
665+ if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 || config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ) {
645666 memcpy (config -> key_info -> key_info [1 ].info , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
646667 config -> key_info -> key_info [1 ].crc = esp_rom_crc32_le (0 , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
647668 } else {
@@ -698,6 +719,14 @@ esp_err_t esp_key_mgr_deploy_key_in_ecdh0_mode(const esp_key_mgr_ecdh0_key_confi
698719 ecdh0_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
699720 ecdh0_deploy_config .ecdh0_key_info = ecdh0_key_info -> k2_G [0 ];
700721 break ;
722+ case ESP_KEY_MGR_PSRAM_128_KEY :
723+ ecdh0_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_128 ;
724+ ecdh0_deploy_config .ecdh0_key_info = ecdh0_key_info -> k2_G [0 ];
725+ break ;
726+ case ESP_KEY_MGR_PSRAM_256_KEY :
727+ ecdh0_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_1 ;
728+ ecdh0_deploy_config .ecdh0_key_info = ecdh0_key_info -> k2_G [0 ];
729+ break ;
701730 default :
702731 ESP_LOGE (TAG , "Invalid key type" );
703732 return ESP_ERR_INVALID_ARG ;
@@ -712,8 +741,8 @@ esp_err_t esp_key_mgr_deploy_key_in_ecdh0_mode(const esp_key_mgr_ecdh0_key_confi
712741
713742 ecdh0_deploy_config .huk_deployed = true;
714743
715- if (key_config -> key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
716- ecdh0_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ;
744+ if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
745+ ecdh0_deploy_config .key_purpose = key_type == ESP_KEY_MGR_XTS_AES_256_KEY ? ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 : ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ;
717746 ecdh0_deploy_config .k1_G = key_config -> k1_G [1 ];
718747 ecdh0_deploy_config .ecdh0_key_info = ecdh0_key_info -> k2_G [1 ];
719748 esp_ret = key_mgr_deploy_key_ecdh0_mode (& ecdh0_deploy_config );
@@ -742,7 +771,7 @@ static esp_err_t key_mgr_deploy_key_random_mode(random_deploy_config_t *config)
742771 key_mgr_wait_for_state (ESP_KEY_MGR_STATE_IDLE );
743772
744773 if ((!key_mgr_hal_is_huk_valid ()) || (!config -> huk_deployed )) {
745- // For purpose ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 this part shall be already executed
774+ // For purpose ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 or ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 this part shall be already executed
746775 huk_deploy_config_t huk_deploy_config = {
747776 .use_pre_generated_huk_info = config -> key_config -> use_pre_generated_huk_info ,
748777 .pre_generated_huk_info = & config -> key_config -> huk_info ,
@@ -761,10 +790,10 @@ static esp_err_t key_mgr_deploy_key_random_mode(random_deploy_config_t *config)
761790
762791 // Set AES-XTS key len
763792 esp_key_mgr_key_type_t key_type = (esp_key_mgr_key_type_t ) config -> key_config -> key_type ;
764- if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY ) {
765- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_256 );
766- } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
767- key_mgr_hal_set_xts_aes_key_len (ESP_KEY_MGR_XTS_AES_LEN_512 );
793+ if (key_type == ESP_KEY_MGR_XTS_AES_128_KEY || key_type == ESP_KEY_MGR_PSRAM_128_KEY ) {
794+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_256 );
795+ } else if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
796+ key_mgr_hal_set_xts_aes_key_len (key_type , ESP_KEY_MGR_XTS_AES_LEN_512 );
768797 }
769798
770799 uint8_t * key_recovery_info = (uint8_t * ) heap_caps_calloc (1 , KEY_MGR_KEY_RECOVERY_INFO_SIZE , MALLOC_CAP_INTERNAL );
@@ -785,7 +814,7 @@ static esp_err_t key_mgr_deploy_key_random_mode(random_deploy_config_t *config)
785814 key_mgr_hal_read_public_info (key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
786815 ESP_LOG_BUFFER_HEX_LEVEL ("KEY_MGR KEY INFO" , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE , ESP_LOG_DEBUG );
787816
788- if (config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 ) {
817+ if (config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_1 || config -> key_purpose != ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_1 ) {
789818 if (!key_mgr_hal_is_key_deployment_valid (config -> key_config -> key_type )) {
790819 ESP_LOGE (TAG , "Key deployment is not valid" );
791820 heap_caps_free (key_recovery_info );
@@ -798,7 +827,7 @@ static esp_err_t key_mgr_deploy_key_random_mode(random_deploy_config_t *config)
798827 key_mgr_hal_continue ();
799828 key_mgr_wait_for_state (ESP_KEY_MGR_STATE_IDLE );
800829
801- if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ) {
830+ if (config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 || config -> key_purpose == ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ) {
802831 memcpy (config -> key_info -> key_info [1 ].info , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
803832 config -> key_info -> key_info [1 ].crc = esp_rom_crc32_le (0 , key_recovery_info , KEY_MGR_KEY_RECOVERY_INFO_SIZE );
804833 } else {
@@ -847,6 +876,12 @@ esp_err_t esp_key_mgr_deploy_key_in_random_mode(const esp_key_mgr_random_key_con
847876 case ESP_KEY_MGR_DS_KEY :
848877 random_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_DS ;
849878 break ;
879+ case ESP_KEY_MGR_PSRAM_128_KEY :
880+ random_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_128 ;
881+ break ;
882+ case ESP_KEY_MGR_PSRAM_256_KEY :
883+ random_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_1 ;
884+ break ;
850885 default :
851886 ESP_LOGE (TAG , "Invalid key type" );
852887 return ESP_ERR_INVALID_ARG ;
@@ -862,8 +897,8 @@ esp_err_t esp_key_mgr_deploy_key_in_random_mode(const esp_key_mgr_random_key_con
862897
863898 random_deploy_config .huk_deployed = true;
864899
865- if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY ) {
866- random_deploy_config .key_purpose = ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 ;
900+ if (key_type == ESP_KEY_MGR_XTS_AES_256_KEY || key_type == ESP_KEY_MGR_PSRAM_256_KEY ) {
901+ random_deploy_config .key_purpose = key_type == ESP_KEY_MGR_XTS_AES_256_KEY ? ESP_KEY_MGR_KEY_PURPOSE_XTS_AES_256_2 : ESP_KEY_MGR_KEY_PURPOSE_PSRAM_256_2 ;
867902 esp_ret = key_mgr_deploy_key_random_mode (& random_deploy_config );
868903 if (esp_ret != ESP_OK ) {
869904 ESP_LOGE (TAG , "Key deployment in Random mode failed" );
0 commit comments