tools: kwbimage: Fix generating secure boot data image signature
authorPali Rohár <pali@kernel.org>
Sun, 29 Jan 2023 13:33:36 +0000 (14:33 +0100)
committerStefan Roese <sr@denx.de>
Wed, 1 Mar 2023 05:39:17 +0000 (06:39 +0100)
Secure boot data image signature is calculated from the data image without
trailing 4-bit checksum. Commit 37cb9c15d70d ("tools: kwbimage: Simplify
aligning and calculating checksum") unintentionally broke this calculation
when it increased payloadsz variable by 4 bytes which was propagated also
into the add_secure_header_v1() function. Fix this issue by decreasing size
of buffer by 4 bytes from which is calculated secure boot data image
signature.

Fixes: 37cb9c15d70d ("tools: kwbimage: Simplify aligning and calculating checksum")
Signed-off-by: Pali Rohár <pali@kernel.org>
tools/kwbimage.c

index b32f845..a8a59c1 100644 (file)
@@ -1355,7 +1355,7 @@ static int add_secure_header_v1(struct image_tool_params *params, uint8_t *image
        if (kwb_sign_csk_with_kak(params, secure_hdr, csk))
                return 1;
 
-       if (kwb_sign_and_verify(csk, image_ptr, image_size,
+       if (kwb_sign_and_verify(csk, image_ptr, image_size - 4,
                                &secure_hdr->imgsig, "image") < 0)
                return 1;