Skip to content

Commit 2b594f0

Browse files
committed
[nrf fromlist] bootloader: mcuboot: Changes needed to support AES256
This commit adds changes which are necessary to support the AES256 encryption algorithm in mcuboot. Upstream PR #: 93809 Signed-off-by: Artur Hadasz <[email protected]>
1 parent b5b58e3 commit 2b594f0

File tree

5 files changed

+52
-0
lines changed

5 files changed

+52
-0
lines changed

cmake/mcuboot.cmake

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,12 @@ function(zephyr_mcuboot_tasks)
152152
set(imgtool_args --align ${write_block_size} ${imgtool_args})
153153
endif()
154154

155+
if(NOT "${keyfile_enc}" STREQUAL "")
156+
if(CONFIG_MCUBOOT_ENCRYPTION_ALG_AES_256)
157+
set(imgtool_args ${imgtool_args} --encrypt-keylen 256)
158+
endif()
159+
endif()
160+
155161
# Extensionless prefix of any output file.
156162
set(output ${ZEPHYR_BINARY_DIR}/${KERNEL_NAME})
157163

modules/Kconfig.mcuboot

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,22 @@ config MCUBOOT_ENCRYPTION_KEY_FILE
8989

9090
If left empty, you must encrypt the Zephyr binaries manually.
9191

92+
if MCUBOOT_ENCRYPTION_KEY_FILE != ""
93+
94+
choice MCUBOOT_ENCRYPTION_ALG
95+
prompt "Algorithm used for image encryption"
96+
default MCUBOOT_ENCRYPTION_ALG_AES_128
97+
98+
config MCUBOOT_ENCRYPTION_ALG_AES_128
99+
bool "Use AES-128 for image encryption"
100+
101+
config MCUBOOT_ENCRYPTION_ALG_AES_256
102+
bool "Use AES-256 for image encryption"
103+
104+
endchoice # BOOT_ENCRYPT_ALG
105+
106+
endif # MCUBOOT_ENCRYPTION_KEY_FILE != ""
107+
92108
config MCUBOOT_IMGTOOL_SIGN_VERSION
93109
string "Version to pass to imgtool when signing"
94110
default "$(APP_VERSION_TWEAK_STRING)" if "$(VERSION_MAJOR)" != ""

share/sysbuild/image_configurations/MAIN_image_default.cmake

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,13 @@ if(SB_CONFIG_BOOTLOADER_MCUBOOT)
5151
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_RETENTION_BOOT_MODE y)
5252
endif()
5353
endif()
54+
55+
if(SB_CONFIG_BOOT_ENCRYPTION)
56+
if(SB_CONFIG_BOOT_ENCRYPTION_ALG_AES_128)
57+
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_ENCRYPTION_ALG_AES_128 y)
58+
elseif(SB_CONFIG_BOOT_ENCRYPTION_ALG_AES_256)
59+
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_ENCRYPTION_ALG_AES_256 y)
60+
endif()
61+
endif()
62+
5463
endif()

share/sysbuild/images/bootloader/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,10 @@ if(SB_CONFIG_BOOTLOADER_MCUBOOT)
1818
set_config_bool(${image} CONFIG_BOOT_ENCRYPT_IMAGE "${SB_CONFIG_BOOT_ENCRYPTION}")
1919
if(SB_CONFIG_BOOT_ENCRYPTION)
2020
set_config_string(${image} CONFIG_BOOT_ENCRYPTION_KEY_FILE "${SB_CONFIG_BOOT_ENCRYPTION_KEY_FILE}")
21+
if(SB_CONFIG_BOOT_ENCRYPTION_ALG_AES_128)
22+
set_config_bool(${image} CONFIG_BOOT_ENCRYPT_ALG_AES_128 y)
23+
elseif(SB_CONFIG_BOOT_ENCRYPTION_ALG_AES_256)
24+
set_config_bool(${image} CONFIG_BOOT_ENCRYPT_ALG_AES_256 y)
25+
endif()
2126
endif()
2227
endif()

share/sysbuild/images/bootloader/Kconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,4 +204,20 @@ config BOOT_ENCRYPTION_KEY_FILE
204204
help
205205
Absolute path to encryption key file to use with MCUBoot.
206206

207+
if BOOT_ENCRYPTION
208+
209+
choice BOOT_ENCRYPTION_ALG
210+
prompt "Algorithm used for image encryption"
211+
default BOOT_ENCRYPTION_ALG_AES_128
212+
213+
config BOOT_ENCRYPTION_ALG_AES_128
214+
bool "Use AES-128 for image encryption"
215+
216+
config BOOT_ENCRYPTION_ALG_AES_256
217+
bool "Use AES-256 for image encryption"
218+
219+
endchoice # BOOT_ENCRYPT_ALG
220+
221+
endif # BOOT_ENCRYPTION
222+
207223
endif

0 commit comments

Comments
 (0)