Kconfig 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. menu "NVS Security Provider"
  2. visible if NVS_ENCRYPTION
  3. choice NVS_SEC_KEY_PROTECTION_SCHEME
  4. prompt "NVS Encryption: Key Protection Scheme"
  5. depends on NVS_ENCRYPTION
  6. default NVS_SEC_KEY_PROTECT_USING_FLASH_ENC
  7. help
  8. This choice defines the default NVS encryption keys protection scheme;
  9. which will be used for the default NVS partition.
  10. Users can use the corresponding scheme registration APIs to register other
  11. schemes for the default as well as other NVS partitions.
  12. config NVS_SEC_KEY_PROTECT_USING_FLASH_ENC
  13. bool "Using Flash Encryption"
  14. depends on SECURE_FLASH_ENC_ENABLED
  15. help
  16. Protect the NVS Encryption Keys using Flash Encryption
  17. Requires a separate 'nvs_keys' partition (which will be encrypted by flash encryption)
  18. for storing the NVS encryption keys
  19. config NVS_SEC_KEY_PROTECT_USING_HMAC
  20. bool "Using HMAC peripheral"
  21. depends on SOC_HMAC_SUPPORTED
  22. help
  23. Derive and protect the NVS Encryption Keys using the HMAC peripheral
  24. Requires the specified eFuse block (NVS_SEC_HMAC_EFUSE_KEY_ID or the v2 API argument)
  25. to be empty or pre-written with a key with the purpose ESP_EFUSE_KEY_PURPOSE_HMAC_UP
  26. endchoice
  27. config NVS_SEC_HMAC_EFUSE_KEY_ID
  28. int "eFuse key ID storing the HMAC key"
  29. depends on NVS_SEC_KEY_PROTECT_USING_HMAC
  30. range 0 6
  31. default 6
  32. help
  33. eFuse block key ID storing the HMAC key for deriving the NVS encryption keys
  34. Note: The eFuse block key ID required by the HMAC scheme
  35. (CONFIG_NVS_SEC_KEY_PROTECT_USING_HMAC) is set using this config when the default
  36. NVS partition is initialized with nvs_flash_init(). The eFuse block key ID can
  37. also be set at runtime by passing the appropriate value to the NVS security scheme
  38. registration APIs.
  39. endmenu