]> granicus.if.org Git - esp-idf/commit
partition: Fix "encrypted" read/write when encryption is disabled
authorTim Nordell <tim.nordell@nimbelink.com>
Thu, 18 Apr 2019 19:10:18 +0000 (14:10 -0500)
committerMahavir Jain <mahavir@espressif.com>
Fri, 3 May 2019 09:33:04 +0000 (15:03 +0530)
commit7892cf6a0380d1a8ead7d4d67704b20f4b24250a
tree2193381f5ec45a0435332a86481e854869e0ef2b
parentef49c41e1565c7e16a445632c9fe5010d5b5fed7
partition: Fix "encrypted" read/write when encryption is disabled

According to the documentation[1][2] for partitions, setting the encrypted
flag for partitions should be a no-op when system level encryption isn't
enabled.  The current implementation, however, does not actually match
the documentation and it ends up with an unreadable partition via the
partition API if a partition flag is marked as encrypted without
system-level encryption enabled.  (This is because the writes go through
the encryption block, and reads do not go through the encryption block
when this situation occurs causing unreadable data to the application
running.) This fixes up the read-back of the partition table to match
whether or not the partition is currently encrypted under the hood.

This should not affect the bootloader's code for reading/writing encrypted
partitions as the bootloader directly invokes the spi_flash_write*(...)
APIs.

[1] https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/partition-tables.html#flags
[2] https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html#encrypted-partition-flag

Closes https://github.com/espressif/esp-idf/pull/3328

Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
components/spi_flash/partition.c