@@ -45,230 +45,10 @@ endmacro()
4545find_package (Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} )
4646project (NONE)
4747
48- # Path to "boot" subdirectory of repository root.
49- get_filename_component (BOOT_DIR ${APPLICATION_SOURCE_DIR} DIRECTORY )
50- # Path to top-level repository root directory.
51- get_filename_component (MCUBOOT_DIR ${BOOT_DIR} DIRECTORY )
52- # Path to tinycrypt library source subdirectory of MCUBOOT_DIR.
53- set (TINYCRYPT_DIR "${MCUBOOT_DIR} /ext/tinycrypt/lib" )
54- assert_exists(TINYCRYPT_DIR)
55- set (TINYCRYPT_SHA512_DIR "${MCUBOOT_DIR} /ext/tinycrypt-sha512/lib" )
56- assert_exists(TINYCRYPT_SHA512_DIR)
57- # Path to crypto-fiat
58- set (FIAT_DIR "${MCUBOOT_DIR} /ext/fiat" )
59- assert_exists(FIAT_DIR)
60- # Path to mbed-tls' asn1 parser library.
61- set (MBEDTLS_ASN1_DIR "${MCUBOOT_DIR} /ext/mbedtls-asn1" )
62- assert_exists(MBEDTLS_ASN1_DIR)
63- set (NRF_DIR "${MCUBOOT_DIR} /ext/nrf" )
64-
65- if (CONFIG_BOOT_USE_NRF_CC310_BL)
66- set (NRFXLIB_DIR ${ZEPHYR_BASE} /../nrfxlib)
67- if (NOT EXISTS ${NRFXLIB_DIR} )
68- message (FATAL_ERROR "
69- ------------------------------------------------------------------------
70- No such file or directory: ${NRFXLIB_DIR}
71- The current configuration enables nRF CC310 crypto accelerator hardware
72- with the `CONFIG_BOOT_USE_NRF_CC310_BL` option. Please follow
73- `ext/nrf/README.md` guide to fix your setup or use tinycrypt instead of
74- the HW accelerator.
75- To use the tinycrypt set `CONFIG_BOOT_ECDSA_TINYCRYPT` to y.
76- ------------------------------------------------------------------------" )
77- endif ()
78- # Don't include this if we are using west
79- add_subdirectory (${NRFXLIB_DIR} ${PROJECT_BINARY_DIR} /nrfxlib)
80- endif ()
81-
82- zephyr_library_include_directories(
83- ${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include
84- targets
85- )
86- if (EXISTS targets/${BOARD} .h)
87- zephyr_library_compile_definitions(MCUBOOT_TARGET_CONFIG="${BOARD} .h" )
88- endif ()
89-
90- # Zephyr port-specific sources.
91- zephyr_library_sources(
92- main.c
93- flash_map_extended.c
94- os.c
48+ target_sources (app PRIVATE
9549 keys.c
9650 )
9751
98- if (DEFINED CONFIG_ENABLE_MGMT_PERUSER)
99- zephyr_library_sources(
100- boot_serial_extensions.c
101- )
102- endif ()
103-
104- if (NOT DEFINED CONFIG_FLASH_PAGE_LAYOUT)
105- zephyr_library_sources(
106- flash_map_legacy.c
107- )
108- endif ()
109-
110- # Generic bootutil sources and includes.
111- zephyr_library_include_directories(${BOOT_DIR} /bootutil/include )
112- zephyr_library_sources(
113- ${BOOT_DIR} /bootutil/src/image_validate.c
114- ${BOOT_DIR} /bootutil/src/tlv.c
115- ${BOOT_DIR} /bootutil/src/encrypted.c
116- ${BOOT_DIR} /bootutil/src/image_rsa.c
117- ${BOOT_DIR} /bootutil/src/image_ec256.c
118- ${BOOT_DIR} /bootutil/src/image_ed25519.c
119- ${BOOT_DIR} /bootutil/src/bootutil_misc.c
120- ${BOOT_DIR} /bootutil/src/fault_injection_hardening.c
121- )
122-
123- # library which might be common source code for MCUBoot and an application
124- zephyr_link_libraries(MCUBOOT_BOOTUTIL)
125-
126- if (CONFIG_BOOT_FIH_PROFILE_HIGH)
127- zephyr_library_sources(
128- ${BOOT_DIR} /bootutil/src/fault_injection_hardening_delay_rng_mbedtls.c
129- )
130- endif ()
131-
132- if (CONFIG_SINGLE_APPLICATION_SLOT)
133- zephyr_library_sources(
134- ${BOOT_DIR} /zephyr/single_loader.c
135- )
136- zephyr_library_include_directories(${BOOT_DIR} /bootutil/src)
137- else ()
138- zephyr_library_sources(
139- ${BOOT_DIR} /bootutil/src/loader.c
140- ${BOOT_DIR} /bootutil/src/swap_misc.c
141- ${BOOT_DIR} /bootutil/src/swap_scratch.c
142- ${BOOT_DIR} /bootutil/src/swap_move.c
143- ${BOOT_DIR} /bootutil/src/caps.c
144- )
145- endif ()
146-
147- if (CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256 OR CONFIG_BOOT_ENCRYPT_EC256 OR CONFIG_BOOT_SERIAL_ENCRYPT_EC256)
148- zephyr_library_include_directories(
149- ${MBEDTLS_ASN1_DIR} /include
150- )
151- zephyr_library_sources(
152- # Additionally pull in just the ASN.1 parser from mbedTLS.
153- ${MBEDTLS_ASN1_DIR} /src/asn1parse.c
154- ${MBEDTLS_ASN1_DIR} /src/platform_util.c
155- )
156- if (CONFIG_BOOT_USE_TINYCRYPT)
157- # When using ECDSA signatures, pull in our copy of the tinycrypt library.
158- zephyr_library_include_directories(
159- ${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include
160- ${TINYCRYPT_DIR} /include
161- )
162- zephyr_include_directories(${TINYCRYPT_DIR} /include )
163-
164- zephyr_library_sources(
165- ${TINYCRYPT_DIR} /source /ecc.c
166- ${TINYCRYPT_DIR} /source /ecc_dsa.c
167- ${TINYCRYPT_DIR} /source /sha256.c
168- ${TINYCRYPT_DIR} /source /utils.c
169- )
170- elseif (CONFIG_BOOT_USE_NRF_CC310_BL)
171- zephyr_library_sources(${NRF_DIR} /cc310_glue.c)
172- zephyr_library_include_directories(${NRF_DIR} )
173- zephyr_link_libraries(nrfxlib_crypto)
174- endif ()
175-
176- # Since here we are not using Zephyr's mbedTLS but rather our own, we need
177- # to set MBEDTLS_CONFIG_FILE ourselves. When using Zephyr's copy, this
178- # variable is set by its Kconfig in the Zephyr codebase.
179- zephyr_library_compile_definitions(
180- MBEDTLS_CONFIG_FILE="${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include/mcuboot-mbedtls-cfg.h"
181- )
182- elseif (CONFIG_BOOT_SIGNATURE_TYPE_NONE)
183- zephyr_library_include_directories(
184- ${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include
185- ${TINYCRYPT_DIR} /include
186- )
187-
188- zephyr_library_sources(
189- ${TINYCRYPT_DIR} /source /sha256.c
190- ${TINYCRYPT_DIR} /source /utils.c
191- )
192- elseif (CONFIG_BOOT_SIGNATURE_TYPE_RSA)
193- # Use mbedTLS provided by Zephyr for RSA signatures. (Its config file
194- # is set using Kconfig.)
195- zephyr_include_directories(${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include )
196- if (CONFIG_BOOT_ENCRYPT_RSA)
197- set_source_files_properties (
198- ${BOOT_DIR} /bootutil/src/encrypted.c
199- PROPERTIES
200- INCLUDE_DIRECTORIES ${ZEPHYR_MBEDTLS_MODULE_DIR} /library
201- )
202- endif ()
203- elseif (CONFIG_BOOT_SIGNATURE_TYPE_ED25519 OR CONFIG_BOOT_ENCRYPT_X25519)
204- if (CONFIG_BOOT_USE_TINYCRYPT)
205- zephyr_library_include_directories(
206- ${MBEDTLS_ASN1_DIR} /include
207- ${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include
208- ${TINYCRYPT_DIR} /include
209- ${TINYCRYPT_SHA512_DIR} /include
210- )
211- zephyr_library_sources(
212- ${TINYCRYPT_DIR} /source /sha256.c
213- ${TINYCRYPT_DIR} /source /utils.c
214- ${TINYCRYPT_SHA512_DIR} /source /sha512.c
215- # Additionally pull in just the ASN.1 parser from mbedTLS.
216- ${MBEDTLS_ASN1_DIR} /src/asn1parse.c
217- ${MBEDTLS_ASN1_DIR} /src/platform_util.c
218- )
219- zephyr_library_compile_definitions(
220- MBEDTLS_CONFIG_FILE="${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include/mcuboot-mbedtls-cfg.h"
221- )
222- else ()
223- zephyr_include_directories(${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include )
224- endif ()
225-
226- zephyr_library_include_directories(
227- ${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include
228- ${FIAT_DIR} /include /
229- )
230-
231- zephyr_library_sources(
232- ${FIAT_DIR} /src/curve25519.c
233- )
234- endif ()
235-
236- if (CONFIG_BOOT_ENCRYPT_EC256 OR CONFIG_BOOT_ENCRYPT_X25519 OR CONFIG_BOOT_SERIAL_ENCRYPT_EC256)
237- zephyr_library_sources(
238- ${TINYCRYPT_DIR} /source /aes_encrypt.c
239- ${TINYCRYPT_DIR} /source /aes_decrypt.c
240- ${TINYCRYPT_DIR} /source /ctr_mode.c
241- ${TINYCRYPT_DIR} /source /hmac.c
242- ${TINYCRYPT_DIR} /source /ecc_dh.c
243- )
244- endif ()
245-
246- if (CONFIG_BOOT_ENCRYPT_EC256)
247- zephyr_library_sources(
248- ${TINYCRYPT_DIR} /source /ecc_dh.c
249- )
250- endif ()
251-
252- if (CONFIG_MCUBOOT_SERIAL)
253- zephyr_sources(${BOOT_DIR} /zephyr/serial_adapter.c)
254- zephyr_sources(${BOOT_DIR} /boot_serial/src/boot_serial.c)
255- zephyr_sources(${BOOT_DIR} /boot_serial/src/serial_recovery_cbor.c)
256- zephyr_sources(${BOOT_DIR} /boot_serial/src/zcbor_decode.c)
257- zephyr_sources(${BOOT_DIR} /boot_serial/src/zcbor_encode.c)
258- zephyr_sources(${BOOT_DIR} /boot_serial/src/zcbor_common.c)
259-
260- zephyr_sources_ifdef(CONFIG_BOOT_MGMT_ECHO ${BOOT_DIR} /boot_serial/src/serial_recovery_echo.c)
261-
262- zephyr_include_directories(${BOOT_DIR} /bootutil/include )
263- zephyr_include_directories(${BOOT_DIR} /boot_serial/include )
264- zephyr_include_directories(${ZEPHYR_MCUBOOT_MODULE_DIR} /zephyr/include )
265-
266- zephyr_include_directories_ifdef(
267- CONFIG_BOOT_ERASE_PROGRESSIVELY
268- ${BOOT_DIR} /bootutil/src
269- )
270- endif ()
271-
27252if (NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "" )
27353 # CONF_FILE points to the KConfig configuration files of the bootloader.
27454 foreach (filepath ${CONF_FILE} )
@@ -289,7 +69,7 @@ if(NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "")
28969 (EXISTS ${CONF_DIR} /${CONFIG_BOOT_SIGNATURE_KEY_FILE} ))
29070 set (KEY_FILE ${CONF_DIR} /${CONFIG_BOOT_SIGNATURE_KEY_FILE} )
29171 else ()
292- set (KEY_FILE ${MCUBOOT_DIR } /${CONFIG_BOOT_SIGNATURE_KEY_FILE} )
72+ set (KEY_FILE ${ZEPHYR_MCUBOOT_MODULE_DIR } /${CONFIG_BOOT_SIGNATURE_KEY_FILE} )
29373 endif ()
29474 message ("MCUBoot bootloader key file: ${KEY_FILE} " )
29575
@@ -298,7 +78,7 @@ if(NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "")
29878 OUTPUT ${GENERATED_PUBKEY}
29979 COMMAND
30080 ${PYTHON_EXECUTABLE}
301- ${MCUBOOT_DIR } /scripts/imgtool.py
81+ ${ZEPHYR_MCUBOOT_MODULE_DIR } /scripts/imgtool.py
30282 getpub
30383 -k
30484 ${KEY_FILE}
@@ -307,49 +87,3 @@ if(NOT CONFIG_BOOT_SIGNATURE_KEY_FILE STREQUAL "")
30787 )
30888 zephyr_library_sources(${GENERATED_PUBKEY} )
30989endif ()
310-
311- if (CONFIG_BOOT_ENCRYPTION_KEY_FILE AND NOT CONFIG_BOOT_ENCRYPTION_KEY_FILE STREQUAL "" )
312- # CONF_FILE points to the KConfig configuration files of the bootloader.
313- unset (CONF_DIR)
314- foreach (filepath ${CONF_FILE} )
315- file (READ ${filepath} temp_text)
316- string (FIND "${temp_text} " ${CONFIG_BOOT_ENCRYPTION_KEY_FILE} match)
317- if (${match} GREATER_EQUAL 0)
318- if (NOT DEFINED CONF_DIR)
319- get_filename_component (CONF_DIR ${filepath} DIRECTORY )
320- else ()
321- message (FATAL_ERROR "Encryption key file defined in multiple conf files" )
322- endif ()
323- endif ()
324- endforeach ()
325-
326- if (IS_ABSOLUTE ${CONFIG_BOOT_ENCRYPTION_KEY_FILE} )
327- set (KEY_FILE ${CONFIG_BOOT_ENCRYPTION_KEY_FILE} )
328- elseif ((DEFINED CONF_DIR) AND
329- (EXISTS ${CONF_DIR} /${CONFIG_BOOT_ENCRYPTION_KEY_FILE} ))
330- set (KEY_FILE ${CONF_DIR} /${CONFIG_BOOT_ENCRYPTION_KEY_FILE} )
331- else ()
332- set (KEY_FILE ${MCUBOOT_DIR} /${CONFIG_BOOT_ENCRYPTION_KEY_FILE} )
333- endif ()
334- message ("MCUBoot bootloader encryption key file: ${KEY_FILE} " )
335-
336- set (GENERATED_ENCKEY ${ZEPHYR_BINARY_DIR} /autogen-enckey.c)
337- add_custom_command (
338- OUTPUT ${GENERATED_ENCKEY}
339- COMMAND
340- ${PYTHON_EXECUTABLE}
341- ${MCUBOOT_DIR} /scripts/imgtool.py
342- getpriv
343- -k
344- ${KEY_FILE}
345- > ${GENERATED_ENCKEY}
346- DEPENDS ${KEY_FILE}
347- )
348- zephyr_library_sources(${GENERATED_ENCKEY} )
349- endif ()
350-
351- if (CONFIG_MCUBOOT_CLEANUP_ARM_CORE)
352- zephyr_library_sources(
353- ${BOOT_DIR} /zephyr/arm_cleanup.c
354- )
355- endif ()
0 commit comments