@@ -236,6 +236,12 @@ function(suit_create_package)
236
236
set (CORE_ARGS)
237
237
set (STORAGE_BOOT_ARGS)
238
238
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
+
239
245
240
246
if (NOT DEFINED SB_CONFIG_SUIT_ENVELOPE_SIGN)
241
247
set (SB_CONFIG_SUIT_ENVELOPE_SIGN FALSE )
@@ -247,12 +253,40 @@ function(suit_create_package)
247
253
248
254
foreach (image ${IMAGES} )
249
255
unset (target )
256
+ unset (encrypt)
250
257
sysbuild_get(BINARY_DIR IMAGE ${image} VAR APPLICATION_BINARY_DIR CACHE )
251
258
sysbuild_get(BINARY_FILE IMAGE ${image} VAR CONFIG_KERNEL_BIN_NAME KCONFIG)
252
259
sysbuild_get(target IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET KCONFIG)
260
+ sysbuild_get(encrypt IMAGE ${image} VAR CONFIG_SUIT_ENVELOPE_TARGET_ENCRYPT KCONFIG)
253
261
254
262
set (BINARY_FILE "${BINARY_FILE} .bin" )
255
263
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
+
256
290
list (APPEND CORE_ARGS
257
291
--core ${image} ,${SUIT_ROOT_DIRECTORY}${image} .bin,${BINARY_DIR} /zephyr/edt.pickle,${BINARY_DIR} /zephyr/.config
258
292
)
@@ -262,11 +296,11 @@ function(suit_create_package)
262
296
--core ${target} ,${SUIT_ROOT_DIRECTORY}${image} .bin,${BINARY_DIR} /zephyr/edt.pickle,${BINARY_DIR} /zephyr/.config
263
297
)
264
298
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 })
266
300
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 )
270
304
set_property (GLOBAL APPEND PROPERTY SUIT_RECOVERY_DFU_ARTIFACTS ${SUIT_ROOT_DIRECTORY}${image} .bin)
271
305
else ()
272
306
set_property (GLOBAL APPEND PROPERTY SUIT_DFU_ARTIFACTS ${SUIT_ROOT_DIRECTORY}${image} .bin)
@@ -313,9 +347,9 @@ function(suit_create_package)
313
347
suit_render_template(${INPUT_ENVELOPE_JINJA_FILE} ${ENVELOPE_YAML_FILE} "${TEMPLATE_ARGS} " )
314
348
suit_create_envelope(${ENVELOPE_YAML_FILE} ${ENVELOPE_SUIT_FILE} ${SB_CONFIG_SUIT_ENVELOPE_SIGN} )
315
349
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 )
319
353
set_property (GLOBAL APPEND PROPERTY SUIT_RECOVERY_DFU_ARTIFACTS ${ENVELOPE_SUIT_FILE} )
320
354
else ()
321
355
set_property (GLOBAL APPEND PROPERTY SUIT_DFU_ARTIFACTS ${ENVELOPE_SUIT_FILE} )
@@ -336,10 +370,10 @@ function(suit_create_package)
336
370
if (EXTRACT_TO_CACHE)
337
371
sysbuild_get(CACHE_PARTITION_NUM IMAGE ${image} VAR CONFIG_SUIT_DFU_CACHE_EXTRACT_IMAGE_PARTITION KCONFIG)
338
372
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)
341
375
342
- if (CONFIG_SUIT_RECOVERY )
376
+ if (recovery )
343
377
list (APPEND RECOVERY_DFU_CACHE_PARTITIONS_USED ${CACHE_PARTITION_NUM} )
344
378
list (APPEND SUIT_RECOVERY_CACHE_PARTITION_${CACHE_PARTITION_NUM} ${image} )
345
379
else ()
@@ -356,11 +390,10 @@ function(suit_create_package)
356
390
foreach (CACHE_PARTITION_NUM ${DFU_CACHE_PARTITIONS_USED} )
357
391
set (CACHE_CREATE_ARGS "" )
358
392
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)
361
393
sysbuild_get(IMAGE_CACHE_URI IMAGE ${image} VAR CONFIG_SUIT_DFU_CACHE_EXTRACT_IMAGE_URI KCONFIG)
394
+
362
395
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} \" "
364
397
)
365
398
endforeach ()
366
399
@@ -382,11 +415,9 @@ function(suit_create_package)
382
415
foreach (CACHE_PARTITION_NUM ${RECOVERY_DFU_CACHE_PARTITIONS_USED} )
383
416
set (CACHE_CREATE_ARGS "" )
384
417
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)
387
418
sysbuild_get(IMAGE_CACHE_URI IMAGE ${image} VAR CONFIG_SUIT_DFU_CACHE_EXTRACT_IMAGE_URI KCONFIG)
388
419
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} \" "
390
421
)
391
422
endforeach ()
392
423
@@ -544,9 +575,9 @@ function(suit_setup_merge)
544
575
foreach (image ${IMAGES} )
545
576
set (ARTIFACTS_TO_MERGE)
546
577
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 )
550
581
continue ()
551
582
endif ()
552
583
0 commit comments