Files
u-boot/tools
Pali Rohár 9b4531f685 tools: kwbimage: Fix invalid secure boot header signature
Secure boot header signature is calculated from the image header with
zeroed header checksum. Calculation is done in add_secure_header_v1()
function. So after calling this function no header member except
main_hdr->checksum can be modified. Commit 2b0980c240 ("tools: kwbimage:
Fill the real header size into the main header") broke this requirement as
final header size started to be filled into main_hdr->headersz_* members
after the add_secure_header_v1() call.

Fix this issue by following steps:
- Split header size and image data offset into two variables (headersz and
  *dataoff).
- Change image_headersz_v0() and add_binary_header_v1() functions to return
  real (unaligned) header size instead of image data offset.
- On every place use correct variable (headersz or *dataoff)

After these steps variable headersz is correctly filled into the
main_hdr->headersz_* members and so overwriting them in the end of the
image_create_v1() function is not needed anymore. Remove those overwriting
which effectively reverts changes in problematic commit without affecting
value in main_hdr->headersz_* members and makes secure boot header
signature valid again.

Fixes: 2b0980c240 ("tools: kwbimage: Fill the real header size into the main header")
Signed-off-by: Pali Rohár <pali@kernel.org>
2023-03-01 06:39:17 +01:00
..
2023-02-27 17:28:21 -05:00
2023-02-04 18:19:00 +01:00
2023-02-07 14:33:49 -05:00
2019-07-29 00:20:31 +02:00
2021-01-13 02:38:00 +01:00
2022-12-08 09:29:02 -05:00
2022-01-19 18:11:34 +01:00
2023-01-27 12:51:26 -05:00
2022-01-28 17:58:41 -05:00
2023-01-30 23:23:01 +01:00
2023-02-07 14:33:48 -05:00
2022-01-19 18:11:34 +01:00
2019-11-04 18:15:32 -07:00