image encryption: fix enc_state array indexing for zephyr
enc_state table was indexed with assumption that
image flash area are subsequent and increasing numbers.
It might not be true while building zephyr.
Patch introduce flash_area_id_to_image_slot() implementation for
the zephyr port and uses it to assign proper slot number.
This API is already available in MyNewt.
Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
diff --git a/boot/zephyr/flash_map_extended.c b/boot/zephyr/flash_map_extended.c
index 1b1b5ad..543a467 100644
--- a/boot/zephyr/flash_map_extended.c
+++ b/boot/zephyr/flash_map_extended.c
@@ -66,6 +66,19 @@
return -EINVAL; /* flash_area_open will fail on that */
}
+int flash_area_id_to_image_slot(int area_id)
+{
+ switch (area_id) {
+ case FLASH_AREA_IMAGE_PRIMARY:
+ return 0;
+ case FLASH_AREA_IMAGE_SECONDARY:
+ return 1;
+ default:
+ BOOT_LOG_ERR("invalid flash area ID");
+ return -1;
+ }
+}
+
int flash_area_sector_from_off(off_t off, struct flash_sector *sector)
{
int rc;