tools/fit_check_sign: make key optional
authorDaniel Golle <daniel@makrotopia.org>
Sat, 29 Mar 2025 23:24:31 +0000 (23:24 +0000)
committerTom Rini <trini@konsulko.com>
Fri, 11 Apr 2025 02:55:53 +0000 (20:55 -0600)
Allow invoking fit_check_sig without the key parameter, allowing to
validate only checksums and hashes for unsigned images.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
tools/Makefile
tools/fit_check_sign.c

index d0e4d2d..97ce1db 100644 (file)
@@ -63,8 +63,7 @@ HOSTCFLAGS_img2srec.o := -pedantic
 hostprogs-y += mkenvimage
 mkenvimage-objs := mkenvimage.o os_support.o generated/lib/crc32.o
 
-hostprogs-y += dumpimage mkimage
-hostprogs-$(CONFIG_TOOLS_LIBCRYPTO) += fit_info fit_check_sign
+hostprogs-y += dumpimage mkimage fit_info fit_check_sign
 hostprogs-$(CONFIG_TOOLS_LIBCRYPTO) += fdt_add_pubkey
 hostprogs-$(CONFIG_TOOLS_LIBCRYPTO) += preload_check_sign
 
index 3d1d33f..32d0fdb 100644 (file)
@@ -45,7 +45,7 @@ int main(int argc, char **argv)
        char *config_name = NULL;
        char cmdname[256];
        int ret;
-       void *key_blob;
+       void *key_blob = NULL;
        int c;
 
        strncpy(cmdname, *argv, sizeof(cmdname) - 1);
@@ -70,18 +70,15 @@ int main(int argc, char **argv)
                fprintf(stderr, "%s: Missing fdt file\n", *argv);
                usage(*argv);
        }
-       if (!keyfile) {
-               fprintf(stderr, "%s: Missing key file\n", *argv);
-               usage(*argv);
-       }
 
        ffd = mmap_fdt(cmdname, fdtfile, 0, &fit_blob, &fsbuf, false, true);
        if (ffd < 0)
                return EXIT_FAILURE;
-       kfd = mmap_fdt(cmdname, keyfile, 0, &key_blob, &ksbuf, false, true);
-       if (kfd < 0)
-               return EXIT_FAILURE;
-
+       if (keyfile) {
+               kfd = mmap_fdt(cmdname, keyfile, 0, &key_blob, &ksbuf, false, true);
+               if (kfd < 0)
+                       return EXIT_FAILURE;
+       }
        image_set_host_blob(key_blob);
        ret = fit_check_sign(fit_blob, key_blob, config_name);
        if (!ret) {
@@ -93,7 +90,9 @@ int main(int argc, char **argv)
        }
 
        (void) munmap((void *)fit_blob, fsbuf.st_size);
-       (void) munmap((void *)key_blob, ksbuf.st_size);
+
+       if (key_blob)
+               (void)munmap((void *)key_blob, ksbuf.st_size);
 
        close(ffd);
        close(kfd);