Provide and use internal function mbedtls_zeroize_and_free()
Signed-off-by: Tom Cosgrove <tom.cosgrove@arm.com>
diff --git a/library/psa_crypto_storage.c b/library/psa_crypto_storage.c
index a8ed937..574d4b0 100644
--- a/library/psa_crypto_storage.c
+++ b/library/psa_crypto_storage.c
@@ -354,18 +354,14 @@
status = psa_crypto_storage_store(attr->id,
storage_data, storage_data_length);
- mbedtls_platform_zeroize(storage_data, storage_data_length);
- mbedtls_free(storage_data);
+ mbedtls_zeroize_and_free(storage_data, storage_data_length);
return status;
}
void psa_free_persistent_key_data(uint8_t *key_data, size_t key_data_length)
{
- if (key_data != NULL) {
- mbedtls_platform_zeroize(key_data, key_data_length);
- }
- mbedtls_free(key_data);
+ mbedtls_zeroize_and_free(key_data, key_data_length);
}
psa_status_t psa_load_persistent_key(psa_core_key_attributes_t *attr,
@@ -403,8 +399,7 @@
}
exit:
- mbedtls_platform_zeroize(loaded_data, storage_data_length);
- mbedtls_free(loaded_data);
+ mbedtls_zeroize_and_free(loaded_data, storage_data_length);
return status;
}