Repository navigation
DescriptionWe are using MCUboot in a dual-slot swap configuration in a safety-related The CRC-32 is intended as an additional runtime integrity mechanism. It is not We are evaluating two approaches. 1. CRC-32 over application payload onlyIn the first approach, we calculate a CRC-32 over the application payload The CRC-32 is calculated before signing, stored in the protected TLV area, and This approach works as expected. However, the CRC is then part of the protected 2. CRC-32 over the complete MCUboot image, stored outside the signed dataFor our safety requirements, we would prefer a CRC-32 over the complete Our intended workflow is:
The CRC-32 field must remain outside the signed data. It must nevertheless be ProblemWe tried reserving four additional bytes in the slot layout for the CRC-32.
We also understand that the end of an MCUboot slot contains the MCUboot image QuestionsWhat is the intended MCUboot mechanism for storing additional application
More specifically:
Environment
Any guidance on the intended MCUboot mechanism or the correct configuration for this use case would be greatly appreciated. Thank you in advance for your time and support. |
Replies: 1 comment 1 reply
|
Not with MCUboot as it is: since 2.1.0 it rejects an image whose unprotected TLV area carries a type that is not on its allow list, and nothing outside the TLV area is guaranteed to travel with the image. The integrity check you are after can be done without storing anything after signing, though. Taking your questions in order:
|
Not with MCUboot as it is: since 2.1.0 it rejects an image whose unprotected TLV area carries a type that is not on its allow list, and nothing outside the TLV area is guaranteed to travel with the image. The integrity check you are after can be done without storing anything after signing, though. Taking your questions in order:
bootutil_img_validate()walks the unprotected area and fails the image on any type that is not inallowed_unprot_tlvs(hashes, key hash or public key, signatures, encryption keys), unless MCUboot is built withALLOW_ROGUE_TLVS(a compile definition at …