nvs_flash: Add support for HMAC-based NVS encryption keys protection scheme

- This features allows the NVS encryption keys to be derived and protected using
  the HMAC peripheral. Since the encryption keys are derived at runtime, they
  are not stored anywhere in the flash and hence this feature does not require
  a separate `nvs_keys` partition.
This commit is contained in:
Laukik Hase
2023-04-05 18:03:56 +05:30
parent 1cf46bd0f0
commit c1bed366ba
10 changed files with 147 additions and 62 deletions
@@ -8,9 +8,9 @@
#include "nvs_partition_lookup.hpp"
#include "nvs_internal.h"
#ifdef CONFIG_NVS_ENCRYPTION
#ifndef LINUX_TARGET
#include "nvs_encrypted_partition.hpp"
#endif // CONFIG_NVS_ENCRYPTION
#endif // ! LINUX_TARGET
namespace nvs {
@@ -100,7 +100,6 @@ esp_err_t NVSPartitionManager::init_custom(Partition *partition, uint32_t baseSe
return err;
}
#ifdef CONFIG_NVS_ENCRYPTION
#ifdef ESP_PLATFORM
esp_err_t NVSPartitionManager::secure_init_partition(const char *part_name, nvs_sec_cfg_t* cfg)
{
@@ -140,7 +139,6 @@ esp_err_t NVSPartitionManager::secure_init_partition(const char *part_name, nvs_
return ESP_OK;
}
#endif // ESP_PLATFORM
#endif // CONFIG_NVS_ENCRYPTION
esp_err_t NVSPartitionManager::deinit_partition(const char *partition_label)
{