Sudhakar Kuppusamy
ff1edd9752
util/grub-mkimagexx: Stop generating unaligned appended signatures
When creating the core image with an unaligned appended signature size,
e.g. 479, for PowerPC, the grub-mkimage aligns the appended signature
size to a multiple of 4 bytes, but it does not add a padding needed to
align to multiple of 4 bytes appended signature size in the appended
signature ELF note. Therefore, after signing and installing this core
image, the firmware tries to read the magic string "~Module signature
appended~" from the appended signature ELF note but gets the partial
magic string like "Module signature appended~". It leads to the appended
signature magic string match failure.
Example:
grub-mkimage -O powerpc-ieee1275 -o core.elf -p /grub -x \
kernel.der --appended-signature-size 479 ...
sign-file SHA256 ./grub.key ./grub.pem ./core.elf ./core.elf.signed
Without padding: hexdump -C ./core.elf.signed
...
00383550 00 00 00 13 00 00 01 e0 41 53 69 67 41 70 70 65 |........ASigAppe|
00383560 6e 64 65 64 2d 53 69 67 6e 61 74 75 72 65 00 00 |nded-Signature..|
...
003836f0 dd 47 cd ed 02 8e 15 af 5b 09 2e 44 6f da 67 88 |.G......[..Do.g.|
00383700 4d 94 17 31 26 9d 47 95 d8 7c ad 36 00 d2 9c 53 |M..1&.G..|.6...S|
00383710 20 e0 af 60 78 cd 22 e6 ed 45 1e b1 e7 7e cf b5 | ..`x."..E...~..|
00383720 fc 58 ec df 1b ab 7a 00 00 02 00 00 00 00 00 00 |.X....z.........|
00383730 00 01 b7 7e 4d 6f 64 75 6c 65 20 73 69 67 6e 61 |...~Module signa|
00383740 74 75 72 65 20 61 70 70 65 6e 64 65 64 7e 0a |ture appended~.|
Fix this by adding a padding required to align appended signature size in the
appended signature ELF note to multiple of 4 bytes.
Example:
grub-mkimage -O powerpc-ieee1275 -o core.elf -p /grub -x \
kernel.der --appended-signature-size 479 ...
sign-file SHA256 ./grub.key ./grub.pem ./core.elf ./core.elf.signed
With padding: hexdump -C ./core.elf.signed
...
00137460 62 00 00 00 00 00 00 13 00 00 01 ec 41 53 69 67 |b...........ASig|
00137470 41 70 70 65 6e 64 65 64 2d 53 69 67 6e 61 74 75 |Appended-Signatu|
...
00137610 b7 07 cd b6 c8 ca 9a 5b 7c 13 8c 75 1d 1c 54 81 |.......[|..u..T.|
00137620 7f c4 9a 8b bd d7 73 8d 2f 7d d2 e6 d1 3c 52 a9 |......s./}...<R.|
00137630 4e 0b e5 24 ba 0a 82 aa 8e c5 86 fa e1 19 50 ec |N..$..........P.|
00137640 9f a7 9a ed e5 ed 13 35 00 00 02 00 00 00 00 00 |.......5........|
00137650 00 00 01 c2 7e 4d 6f 64 75 6c 65 20 73 69 67 6e |....~Module sign|
00137660 61 74 75 72 65 20 61 70 70 65 6e 64 65 64 7e 0a |ature appended~.|
Signed-off-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2026-01-08 19:31:37 +01:00
..
2025-09-04 14:37:20 +02:00
2025-11-18 12:49:31 +01:00
2010-09-15 14:46:53 +02:00
2017-12-06 12:55:55 +01:00
2013-08-14 10:56:55 +02:00
2013-12-14 21:50:36 +01:00
2023-12-12 17:55:14 +01:00
2013-11-23 12:42:30 +01:00
2023-12-12 18:01:55 +01:00
2022-03-14 16:01:07 +01:00
2025-10-23 19:15:01 +02:00
2020-07-29 16:55:47 +02:00
2025-07-11 23:12:50 +02:00
2022-03-14 16:01:07 +01:00
2022-03-14 16:01:07 +01:00
2013-12-21 18:08:25 +01:00
2025-12-21 16:41:46 +01:00
2025-04-10 19:40:50 +02:00
2016-02-12 15:46:05 +01:00
2015-03-04 01:00:19 +01:00
2013-11-11 22:48:43 +01:00
2022-03-14 16:01:07 +01:00
2024-02-15 16:54:59 +01:00
2025-11-18 12:49:31 +01:00
2022-10-27 15:47:34 +02:00
2018-12-12 12:03:27 +01:00
2018-12-12 12:03:27 +01:00
2025-10-11 15:36:34 +02:00
2026-01-08 19:31:37 +01:00
2022-03-14 16:01:07 +01:00
2023-05-17 13:23:44 +02:00
2024-06-06 16:55:16 +02:00
2013-12-21 18:08:25 +01:00
2025-11-20 16:41:05 +01:00
2023-12-12 15:47:08 +01:00
2022-10-11 14:15:55 +02:00
2022-10-11 14:15:55 +02:00
2023-05-17 13:18:36 +02:00
2023-03-14 16:07:54 +01:00
2023-10-30 18:33:06 +01:00
2025-10-28 12:19:35 +01:00
2023-06-01 11:45:00 +02:00
2025-06-26 17:19:25 +02:00
2018-09-13 11:01:10 +02:00
2013-12-21 18:08:25 +01:00
2022-03-14 16:01:07 +01:00
2016-02-12 15:46:05 +01:00
2020-12-12 01:19:03 +01:00
2022-03-14 16:01:07 +01:00
2025-10-21 13:45:58 +02:00
2025-07-11 23:12:50 +02:00
2025-07-11 23:12:50 +02:00
2023-06-13 14:16:08 +02:00
2025-09-04 14:37:20 +02:00
2025-10-11 15:36:34 +02:00
2022-06-07 12:54:51 +02:00
2022-03-14 16:01:07 +01:00
2022-02-08 16:04:57 +01:00
2013-10-15 16:16:04 +02:00
2013-10-15 16:16:04 +02:00
2022-03-14 16:01:07 +01:00
2013-01-21 14:55:30 +01:00