@@ -236,6 +236,12 @@ function(suit_create_package)
236236 set (CORE_ARGS)
237237 set (STORAGE_BOOT_ARGS)
238238 sysbuild_get(app_config_dir IMAGE ${DEFAULT_IMAGE} VAR APPLICATION_CONFIG_DIR CACHE )
239+ get_property (SUIT_KMS_SCRIPT GLOBAL PROPERTY SUIT_KMS_SCRIPT)
240+ # If the user has not provided the path to the kms script, use the default one.
241+ if (NOT SUIT_KMS_SCRIPT)
242+ set (SUIT_KMS_SCRIPT "${ZEPHYR_SUIT_GENERATOR_MODULE_DIR} /ncs/basic_kms.py" )
243+ endif ()
244+
239245
240246 if (NOT DEFINED SB_CONFIG_SUIT_ENVELOPE_SIGN)
241247 set (SB_CONFIG_SUIT_ENVELOPE_SIGN FALSE )
@@ -247,12 +253,40 @@ function(suit_create_package)
247253
248254 foreach (image ${IMAGES} )
249255 unset (target )
256+ unset (encrypt)
250257 sysbuild_get(BINARY_DIR IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
251258 sysbuild_get(BINARY_FILE IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
252259 sysbuild_get(target IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
260+ sysbuild_get(encrypt IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET_ENCRYPT KCONFIG)
253261
254262 set (BINARY_FILE "${BINARY_FILE} .bin" )
255263
264+ if (encrypt)
265+ if (DEFINED target AND NOT target STREQUAL "" )
266+ set (${image} _SUIT_ENCRYPT_DIR "${SUIT_ROOT_DIRECTORY} /${target} _encryption_artifacts" )
267+ else ()
268+ set (${image} _SUIT_ENCRYPT_DIR "${SUIT_ROOT_DIRECTORY} /${image} _encryption_artifacts" )
269+ endif ()
270+
271+ set (SUIT_ENCRYPT_ARGS)
272+ sysbuild_get(encrypt_string_key_id IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET_ENCRYPT_STRING_KEY_ID KCONFIG)
273+ sysbuild_get(encrypt_key_name IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET_ENCRYPT_KEY_NAME KCONFIG)
274+ sysbuild_get(plaintext_hash_alg IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET_ENCRYPT_PLAINTEXT_HASH_ALG_NAME KCONFIG)
275+
276+ list (APPEND SUIT_ENCRYPT_ARGS --firmware ${BINARY_DIR} /zephyr/${BINARY_FILE} )
277+ list (APPEND SUIT_ENCRYPT_ARGS --key-name ${encrypt_key_name} )
278+ list (APPEND SUIT_ENCRYPT_ARGS --string -key-id ${encrypt_string_key_id} )
279+ list (APPEND SUIT_ENCRYPT_ARGS --hash-alg ${plaintext_hash_alg} )
280+ list (APPEND SUIT_ENCRYPT_ARGS --context ${SB_CONFIG_SUIT_ENVELOPE_KMS_SCRIPT_CONTEXT} )
281+ list (APPEND SUIT_ENCRYPT_ARGS --kms-script ${SUIT_KMS_SCRIPT} )
282+
283+ suit_encrypt_image("${SUIT_ENCRYPT_ARGS} " ${${image} _SUIT_ENCRYPT_DIR})
284+
285+ set (${image} _SUIT_PAYLOAD_BINARY ${${image} _SUIT_ENCRYPT_DIR}/encrypted_content.bin)
286+ else ()
287+ set (${image} _SUIT_PAYLOAD_BINARY ${BINARY_DIR} /zephyr/${BINARY_FILE} )
288+ endif ()
289+
256290 list (APPEND CORE_ARGS
257291 --core ${image} ,${SUIT_ROOT_DIRECTORY}${image} .bin,${BINARY_DIR} /zephyr/edt.pickle,${BINARY_DIR} /zephyr/.config
258292 )
@@ -262,11 +296,11 @@ function(suit_create_package)
262296 --core ${target} ,${SUIT_ROOT_DIRECTORY}${image} .bin,${BINARY_DIR} /zephyr/edt.pickle,${BINARY_DIR} /zephyr/.config
263297 )
264298 endif ()
265- suit_copy_artifact_to_output_directory(${image} ${BINARY_DIR} /zephyr/ ${BINARY_FILE } )
299+ suit_copy_artifact_to_output_directory(${image} ${${image} _SUIT_PAYLOAD_BINARY })
266300
267- unset (CONFIG_SUIT_RECOVERY )
268- sysbuild_get(CONFIG_SUIT_RECOVERY IMAGE ${image} VAR CONFIG_SUIT_RECOVERY KCONFIG)
269- if (CONFIG_SUIT_RECOVERY )
301+ unset (recovery )
302+ sysbuild_get(recovery IMAGE ${image} VAR CONFIG_SUIT_RECOVERY KCONFIG)
303+ if (recovery )
270304 set_property (GLOBAL APPEND PROPERTY SUIT_RECOVERY_DFU_ARTIFACTS ${SUIT_ROOT_DIRECTORY}${image} .bin)
271305 else ()
272306 set_property (GLOBAL APPEND PROPERTY SUIT_DFU_ARTIFACTS ${SUIT_ROOT_DIRECTORY}${image} .bin)
@@ -313,9 +347,9 @@ function(suit_create_package)
313347 suit_render_template(${INPUT_ENVELOPE_JINJA_FILE} ${ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " )
314348 suit_create_envelope(${ENVELOPE_YAML_FILE} ${ENVELOPE_SUIT_FILE} ${SB_CONFIG_SUIT_ENVELOPE_SIGN} )
315349
316- unset (CONFIG_SUIT_RECOVERY )
317- sysbuild_get(CONFIG_SUIT_RECOVERY IMAGE ${image} VAR CONFIG_SUIT_RECOVERY KCONFIG)
318- if (CONFIG_SUIT_RECOVERY )
350+ unset (recovery )
351+ sysbuild_get(recovery IMAGE ${image} VAR CONFIG_SUIT_RECOVERY KCONFIG)
352+ if (recovery )
319353 set_property (GLOBAL APPEND PROPERTY SUIT_RECOVERY_DFU_ARTIFACTS ${ENVELOPE_SUIT_FILE} )
320354 else ()
321355 set_property (GLOBAL APPEND PROPERTY SUIT_DFU_ARTIFACTS ${ENVELOPE_SUIT_FILE} )
@@ -336,10 +370,10 @@ function(suit_create_package)
336370 if (EXTRACT_TO_CACHE)
337371 sysbuild_get(CACHE_PARTITION_NUM IMAGE ${image} VAR CONFIG_SUIT_DFU_CACHE_EXTRACT_IMAGE_PARTITION KCONFIG)
338372
339- unset (CONFIG_SUIT_RECOVERY )
340- sysbuild_get(CONFIG_SUIT_RECOVERY IMAGE ${image} VAR CONFIG_SUIT_RECOVERY KCONFIG)
373+ unset (recovery )
374+ sysbuild_get(recovery IMAGE ${image} VAR CONFIG_SUIT_RECOVERY KCONFIG)
341375
342- if (CONFIG_SUIT_RECOVERY )
376+ if (recovery )
343377 list (APPEND RECOVERY_DFU_CACHE_PARTITIONS_USED ${CACHE_PARTITION_NUM} )
344378 list (APPEND SUIT_RECOVERY_CACHE_PARTITION_${CACHE_PARTITION_NUM} ${image} )
345379 else ()
@@ -356,11 +390,10 @@ function(suit_create_package)
356390 foreach (CACHE_PARTITION_NUM ${DFU_CACHE_PARTITIONS_USED} )
357391 set (CACHE_CREATE_ARGS "" )
358392 foreach (image ${SUIT_CACHE_PARTITION_${CACHE_PARTITION_NUM} })
359- sysbuild_get(BINARY_DIR IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
360- sysbuild_get(BINARY_FILE IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
361393 sysbuild_get(IMAGE_CACHE_URI IMAGE ${image} VAR CONFIG_SUIT_DFU_CACHE_EXTRACT_IMAGE_URI KCONFIG)
394+
362395 list (APPEND CACHE_CREATE_ARGS
363- "--input" "\" ${IMAGE_CACHE_URI} ,${BINARY_DIR} /zephyr/ ${BINARY_FILE} .bin \" "
396+ "--input" "\" ${IMAGE_CACHE_URI} ,${${image} _SUIT_PAYLOAD_BINARY} \" "
364397 )
365398 endforeach ()
366399
@@ -382,11 +415,9 @@ function(suit_create_package)
382415 foreach (CACHE_PARTITION_NUM ${RECOVERY_DFU_CACHE_PARTITIONS_USED} )
383416 set (CACHE_CREATE_ARGS "" )
384417 foreach (image ${SUIT_RECOVERY_CACHE_PARTITION_${CACHE_PARTITION_NUM} })
385- sysbuild_get(BINARY_DIR IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
386- sysbuild_get(BINARY_FILE IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
387418 sysbuild_get(IMAGE_CACHE_URI IMAGE ${image} VAR CONFIG_SUIT_DFU_CACHE_EXTRACT_IMAGE_URI KCONFIG)
388419 list (APPEND CACHE_CREATE_ARGS
389- "--input" "\" ${IMAGE_CACHE_URI} ,${BINARY_DIR} /zephyr/ ${BINARY_FILE} .bin \" "
420+ "--input" "\" ${IMAGE_CACHE_URI} ,${${image} _SUIT_PAYLOAD_BINARY} \" "
390421 )
391422 endforeach ()
392423
@@ -544,9 +575,9 @@ function(suit_setup_merge)
544575 foreach (image ${IMAGES} )
545576 set (ARTIFACTS_TO_MERGE)
546577
547- unset (CONFIG_NRF_REGTOOL_GENERATE_UICR )
548- sysbuild_get(CONFIG_NRF_REGTOOL_GENERATE_UICR IMAGE ${image} VAR CONFIG_NRF_REGTOOL_GENERATE_UICR KCONFIG)
549- if (NOT DEFINED CONFIG_NRF_REGTOOL_GENERATE_UICR )
578+ unset (regtool_generate_uicr )
579+ sysbuild_get(regtool_generate_uicr IMAGE ${image} VAR CONFIG_NRF_REGTOOL_GENERATE_UICR KCONFIG)
580+ if (NOT DEFINED regtool_generate_uicr )
550581 continue ()
551582 endif ()
552583
0 commit comments