]> git.baikalelectronics.ru Git - uboot.git/commit
tools: kwbimage: Fix invalid secure boot header signature
authorPali Rohár <pali@kernel.org>
Sun, 29 Jan 2023 14:00:45 +0000 (15:00 +0100)
committerStefan Roese <sr@denx.de>
Wed, 1 Mar 2023 05:39:17 +0000 (06:39 +0100)
commit0947dd2757af12097cdb6262a37d09ee9826fbaa
tree31dcc7b74168039e69fd4a465439dcac588657d5
parenta1139fdeaa01a5647d797f1c8698ccb4d884ba34
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 bb79e11f257d ("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: bb79e11f257d ("tools: kwbimage: Fill the real header size into the main header")
Signed-off-by: Pali Rohár <pali@kernel.org>
tools/kwbimage.c