Skip to content

Commit 9a062c3

Browse files
[fix][api] erase host key from RAM after saving
1 parent fca2db8 commit 9a062c3

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

api/stse_symmetric_keys_management.c

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,8 @@ stse_ReturnCode_t stse_host_secure_channel_keys_provisioning(
525525
(host_mac_key->type == STSE_AES_128_KT) ? STSE_AES_128_KEY_SIZE : STSE_AES_256_KEY_SIZE,
526526
STSE_AES_KEY_USAGE_MAC,
527527
host_mac_key_index);
528+
memset(host_mac_key->key, 0, sizeof(host_mac_key->key));
529+
528530
if (ret != STSE_OK) {
529531
return ret;
530532
}
@@ -534,9 +536,7 @@ stse_ReturnCode_t stse_host_secure_channel_keys_provisioning(
534536
(host_cipher_key->type == STSE_AES_128_KT) ? STSE_AES_128_KEY_SIZE : STSE_AES_256_KEY_SIZE,
535537
STSE_AES_KEY_USAGE_CIPHER,
536538
host_cipher_key_index);
537-
if (ret != STSE_OK) {
538-
return ret;
539-
}
539+
memset(host_cipher_key->key, 0, sizeof(host_cipher_key->key));
540540

541541
return ret;
542542
#else
@@ -638,6 +638,8 @@ stse_ReturnCode_t stse_host_secure_channel_keys_provisioning_wrapped(
638638
(host_mac_key->type == STSE_AES_128_KT) ? STSE_AES_128_KEY_SIZE : STSE_AES_256_KEY_SIZE,
639639
STSE_AES_KEY_USAGE_MAC,
640640
host_mac_key_index);
641+
memset(host_mac_key->key, 0, sizeof(host_mac_key->key));
642+
641643
if (ret != STSE_OK) {
642644
return ret;
643645
}
@@ -647,6 +649,7 @@ stse_ReturnCode_t stse_host_secure_channel_keys_provisioning_wrapped(
647649
(host_cipher_key->type == STSE_AES_128_KT) ? STSE_AES_128_KEY_SIZE : STSE_AES_256_KEY_SIZE,
648650
STSE_AES_KEY_USAGE_CIPHER,
649651
host_cipher_key_index);
652+
memset(host_cipher_key->key, 0, sizeof(host_cipher_key->key));
650653

651654
return ret;
652655
}
@@ -750,6 +753,8 @@ stse_ReturnCode_t stse_host_secure_channel_keys_provisioning_wrapped_authenticat
750753
(host_mac_key->type == STSE_AES_128_KT) ? STSE_AES_128_KEY_SIZE : STSE_AES_256_KEY_SIZE,
751754
STSE_AES_KEY_USAGE_MAC,
752755
host_mac_key_index);
756+
memset(host_mac_key->key, 0, sizeof(host_mac_key->key));
757+
753758
if (ret != STSE_OK) {
754759
return ret;
755760
}
@@ -759,6 +764,7 @@ stse_ReturnCode_t stse_host_secure_channel_keys_provisioning_wrapped_authenticat
759764
(host_cipher_key->type == STSE_AES_128_KT) ? STSE_AES_128_KEY_SIZE : STSE_AES_256_KEY_SIZE,
760765
STSE_AES_KEY_USAGE_CIPHER,
761766
host_cipher_key_index);
767+
memset(host_cipher_key->key, 0, sizeof(host_cipher_key->key));
762768

763769
return ret;
764770
}
@@ -1547,6 +1553,9 @@ stse_ReturnCode_t stse_establish_symmetric_key(
15471553
STSE_AES_256_KEY_SIZE,
15481554
STSE_AES_KEY_USAGE_GENERIC_SECRET,
15491555
&confirmation_key_index);
1556+
1557+
memset(okm_buffer, 0, STSE_AES_256_KEY_SIZE);
1558+
15501559
if (ret != STSE_OK) {
15511560
return ret;
15521561
}
@@ -1792,6 +1801,9 @@ stse_ReturnCode_t stse_establish_symmetric_key_authenticated(
17921801
STSE_AES_256_KEY_SIZE,
17931802
STSE_AES_KEY_USAGE_GENERIC_SECRET,
17941803
&confirmation_key_index);
1804+
1805+
memset(okm_buffer, 0, STSE_AES_256_KEY_SIZE);
1806+
17951807
if (ret != STSE_OK) {
17961808
return ret;
17971809
}

0 commit comments

Comments
 (0)