From f60bcaaa4d8f670f97566d792808f33973dabb42 Mon Sep 17 00:00:00 2001 From: Laukik Hase Date: Wed, 6 Aug 2025 15:42:34 +0530 Subject: [PATCH] feat(nvs_flash): Added an API to deregister the NVS security scheme context --- components/nvs_flash/include/nvs_flash.h | 9 ++++++++- components/nvs_flash/src/nvs_api.cpp | 7 ++++++- components/nvs_sec_provider/nvs_sec_provider.c | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/components/nvs_flash/include/nvs_flash.h b/components/nvs_flash/include/nvs_flash.h index dfa187fbd7..03eba446c8 100644 --- a/components/nvs_flash/include/nvs_flash.h +++ b/components/nvs_flash/include/nvs_flash.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -278,6 +278,13 @@ esp_err_t nvs_flash_read_security_cfg(const esp_partition_t* partition, nvs_sec_ */ esp_err_t nvs_flash_register_security_scheme(nvs_sec_scheme_t *scheme_cfg); +/** + * @brief Deregister the security scheme previously registered using + * nvs_flash_register_security_scheme + * + */ +void nvs_flash_deregister_security_scheme(void); + /** * @brief Fetch the configuration structure for the default active * security scheme for NVS encryption diff --git a/components/nvs_flash/src/nvs_api.cpp b/components/nvs_flash/src/nvs_api.cpp index 8fdf30c0eb..bef404ccba 100644 --- a/components/nvs_flash/src/nvs_api.cpp +++ b/components/nvs_flash/src/nvs_api.cpp @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -736,6 +736,11 @@ extern "C" esp_err_t nvs_flash_register_security_scheme(nvs_sec_scheme_t *scheme return ESP_OK; } +extern "C" void nvs_flash_deregister_security_scheme(void) +{ + memset(&nvs_sec_default_scheme_cfg, 0x00, sizeof(nvs_sec_scheme_t)); +} + extern "C" nvs_sec_scheme_t *nvs_flash_get_default_security_scheme(void) { return &nvs_sec_default_scheme_cfg; diff --git a/components/nvs_sec_provider/nvs_sec_provider.c b/components/nvs_sec_provider/nvs_sec_provider.c index ab9a3e1533..db1bf0e292 100644 --- a/components/nvs_sec_provider/nvs_sec_provider.c +++ b/components/nvs_sec_provider/nvs_sec_provider.c @@ -291,6 +291,7 @@ esp_err_t nvs_sec_provider_deregister(nvs_sec_scheme_t *sec_scheme_handle) free(sec_scheme_handle); + nvs_flash_deregister_security_scheme(); return ESP_OK; }