@@ -339,28 +339,17 @@ if(CONFIG_MCUBOOT_SERIAL)
339339endif ()
340340
341341if (NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "" )
342- # CONF_FILE points to the KConfig configuration files of the bootloader.
343- foreach (filepath ${CONF_FILE} )
344- file (READ ${filepath} temp_text)
345- string (FIND "${temp_text} " ${CONFIG_BOOT_SIGNATURE_KEY_FILE} match)
346- if (${match} GREATER_EQUAL 0)
347- if (NOT DEFINED CONF_DIR)
348- get_filename_component (CONF_DIR ${filepath} DIRECTORY )
349- else ()
350- message (FATAL_ERROR "Signature key file defined in multiple conf files" )
351- endif ()
352- endif ()
353- endforeach ()
342+ set (key_file "${CONFIG_BOOT_SIGNATURE_KEY_FILE} " )
343+ string (CONFIGURE "${key_file} " key_file)
354344
355- if (IS_ABSOLUTE ${CONFIG_BOOT_SIGNATURE_KEY_FILE} )
356- set (KEY_FILE ${CONFIG_BOOT_SIGNATURE_KEY_FILE} )
357- elseif ((DEFINED CONF_DIR) AND
358- (EXISTS ${CONF_DIR} /${CONFIG_BOOT_SIGNATURE_KEY_FILE} ))
359- set (KEY_FILE ${CONF_DIR} /${CONFIG_BOOT_SIGNATURE_KEY_FILE} )
345+ if (IS_ABSOLUTE ${key_file} )
346+ set (signing_key_file ${key_file} )
347+ elseif (EXISTS ${APPLICATION_CONFIG_DIR} /${key_file} )
348+ set (signing_key_file ${APPLICATION_CONFIG_DIR} /${key_file} )
360349 else ()
361- set (KEY_FILE ${MCUBOOT_DIR} /${CONFIG_BOOT_SIGNATURE_KEY_FILE } )
350+ set (signing_key_file ${MCUBOOT_DIR} /${key_file } )
362351 endif ()
363- message ("MCUBoot bootloader key file: ${KEY_FILE } " )
352+ message ("MCUBoot bootloader key file: ${signing_key_file } " )
364353
365354 set (mcuboot_default_signature_files
366355 ${MCUBOOT_DIR} /root-ec-p256-pkcs8.pem
@@ -373,7 +362,7 @@ if(NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "")
373362 )
374363
375364 # Emit a warning if using one of the default MCUboot key files
376- if (${KEY_FILE } IN_LIST mcuboot_default_signature_files)
365+ if (${signing_key_file } IN_LIST mcuboot_default_signature_files)
377366 message (WARNING "WARNING: Using default MCUboot signing key file, this file is for debug use only and is not secure!" )
378367 endif ()
379368
@@ -385,37 +374,25 @@ if(NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "")
385374 ${MCUBOOT_DIR} /scripts/imgtool.py
386375 getpub
387376 -k
388- ${KEY_FILE }
377+ ${signing_key_file }
389378 > ${GENERATED_PUBKEY}
390- DEPENDS ${KEY_FILE }
379+ DEPENDS ${signing_key_file }
391380 )
392381 zephyr_library_sources(${GENERATED_PUBKEY} )
393382endif ()
394383
395384if (CONFIG_BOOT_ENCRYPTION_KEY_FILE AND NOT CONFIG_BOOT_ENCRYPTION_KEY_FILE STREQUAL "" )
396- # CONF_FILE points to the KConfig configuration files of the bootloader.
397- unset (CONF_DIR)
398- foreach (filepath ${CONF_FILE} )
399- file (READ ${filepath} temp_text)
400- string (FIND "${temp_text} " ${CONFIG_BOOT_ENCRYPTION_KEY_FILE} match)
401- if (${match} GREATER_EQUAL 0)
402- if (NOT DEFINED CONF_DIR)
403- get_filename_component (CONF_DIR ${filepath} DIRECTORY )
404- else ()
405- message (FATAL_ERROR "Encryption key file defined in multiple conf files" )
406- endif ()
407- endif ()
408- endforeach ()
385+ set (key_file "${CONFIG_BOOT_ENCRYPTION_KEY_FILE} " )
386+ string (CONFIGURE "${key_file} " key_file)
409387
410- if (IS_ABSOLUTE ${CONFIG_BOOT_ENCRYPTION_KEY_FILE} )
411- set (KEY_FILE ${CONFIG_BOOT_ENCRYPTION_KEY_FILE} )
412- elseif ((DEFINED CONF_DIR) AND
413- (EXISTS ${CONF_DIR} /${CONFIG_BOOT_ENCRYPTION_KEY_FILE} ))
414- set (KEY_FILE ${CONF_DIR} /${CONFIG_BOOT_ENCRYPTION_KEY_FILE} )
388+ if (IS_ABSOLUTE ${key_file} )
389+ set (encryption_key_file ${key_file} )
390+ elseif (EXISTS ${APPLICATION_CONFIG_DIR} /${key_file} )
391+ set (encryption_key_file ${APPLICATION_CONFIG_DIR} /${key_file} )
415392 else ()
416- set (KEY_FILE ${MCUBOOT_DIR} /${CONFIG_BOOT_ENCRYPTION_KEY_FILE } )
393+ set (encryption_key_file ${MCUBOOT_DIR} /${key_file } )
417394 endif ()
418- message ("MCUBoot bootloader encryption key file: ${KEY_FILE } " )
395+ message ("MCUBoot bootloader encryption key file: ${encryption_key_file } " )
419396
420397 # Emit a warning if using one of the default MCUboot key files
421398 set (mcuboot_default_encryption_files
@@ -427,7 +404,7 @@ if(CONFIG_BOOT_ENCRYPTION_KEY_FILE AND NOT CONFIG_BOOT_ENCRYPTION_KEY_FILE STREQ
427404 ${MCUBOOT_DIR} /enc-x25519-pub.pem
428405 )
429406
430- if (${KEY_FILE } IN_LIST mcuboot_default_encryption_files)
407+ if (${encryption_key_file } IN_LIST mcuboot_default_encryption_files)
431408 message (WARNING "WARNING: Using default MCUboot encryption key file, this file is for debug use only and is not secure!" )
432409 endif ()
433410
@@ -439,9 +416,9 @@ if(CONFIG_BOOT_ENCRYPTION_KEY_FILE AND NOT CONFIG_BOOT_ENCRYPTION_KEY_FILE STREQ
439416 ${MCUBOOT_DIR} /scripts/imgtool.py
440417 getpriv
441418 -k
442- ${KEY_FILE }
419+ ${encryption_key_file }
443420 > ${GENERATED_ENCKEY}
444- DEPENDS ${KEY_FILE }
421+ DEPENDS ${encryption_key_file }
445422 )
446423 zephyr_library_sources(${GENERATED_ENCKEY} )
447424endif ()
0 commit comments