From f467f565f031fbebe21e2bede714c114f0a76e1b Mon Sep 17 00:00:00 2001 From: Adrian Warecki Date: Mon, 26 May 2025 17:42:55 +0200 Subject: [PATCH 1/3] rimage: manifest: Add support for resigning ace manifest Add support for ace 1.5 manifest to resign_image function. Signed-off-by: Adrian Warecki --- tools/rimage/src/manifest.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/rimage/src/manifest.c b/tools/rimage/src/manifest.c index 40a85df47ab6..d5c869b58e60 100644 --- a/tools/rimage/src/manifest.c +++ b/tools/rimage/src/manifest.c @@ -1733,7 +1733,7 @@ int resign_image(struct image *image) image->image_end = size; /* check that key size matches */ - if (image->adsp->man_v2_5) { + if (image->adsp->man_v2_5 || image->adsp->man_ace_v1_5) { key_size = 384; } else { key_size = 256; @@ -1755,6 +1755,8 @@ int resign_image(struct image *image) ret = ri_manifest_sign_v1_8(image); else if (image->adsp->man_v2_5) ret = ri_manifest_sign_v2_5(image); + else if (image->adsp->man_ace_v1_5) + ret = ri_manifest_sign_ace_v1_5(image); else ret = -EINVAL; From c54d14545c2fda7480648917b374614ce3c199a0 Mon Sep 17 00:00:00 2001 From: Adrian Warecki Date: Mon, 26 May 2025 17:47:59 +0200 Subject: [PATCH 2/3] rimage: manifest: Fix image size calculation in resign_image function Subtract the number of skipped bytes from the file size to avoid going beyond of memory buffer. Signed-off-by: Adrian Warecki --- tools/rimage/src/manifest.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/rimage/src/manifest.c b/tools/rimage/src/manifest.c index d5c869b58e60..e69ea7de6ef8 100644 --- a/tools/rimage/src/manifest.c +++ b/tools/rimage/src/manifest.c @@ -1730,7 +1730,7 @@ int resign_image(struct image *image) goto out; } - image->image_end = size; + image->image_end = size - i; /* check that key size matches */ if (image->adsp->man_v2_5 || image->adsp->man_ace_v1_5) { From 02cf586d633a3c5f86c547951483e4183d1d36c5 Mon Sep 17 00:00:00 2001 From: Adrian Warecki Date: Mon, 26 May 2025 18:10:38 +0200 Subject: [PATCH 3/3] rimage: manifest: Preserve extended manifest in resigning mode Copy data preceding the cse header to the output file. Signed-off-by: Adrian Warecki --- tools/rimage/src/manifest.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/rimage/src/manifest.c b/tools/rimage/src/manifest.c index e69ea7de6ef8..6f3a161e37a7 100644 --- a/tools/rimage/src/manifest.c +++ b/tools/rimage/src/manifest.c @@ -1773,6 +1773,13 @@ int resign_image(struct image *image) goto out; } + /* Rewrite content before CSE header */ + size = fwrite(buffer, 1, i, image->out_fd); + if (size != i) { + ret = file_error("Extended manifest write error", image->out_file); + goto out; + } + man_write_fw_mod(image); out: