Commit <cb9faa6f98ae56d70d59505dad290dd3d381cb7b> introduced a
target-independent configuration to build crypto features in host tools.

But since commit <2c21256b27d70b5950bd059330cdab027fb6ab7e>, the build
without OpenSSL is broken, due to FIT signature/encryption features. Add
missing conditional compilation tokens to fix this.

Signed-off-by: Paul-Erwan Rio <[email protected]>
---

 include/image.h    | 2 +-
 tools/Kconfig      | 1 +
 tools/fit_image.c  | 2 +-
 tools/image-host.c | 2 ++
 tools/mkimage.c    | 5 +++--
 5 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/include/image.h b/include/image.h
index 7717a4c13d..6a616d15fb 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1388,7 +1388,7 @@ int calculate_hash(const void *data, int data_len, const 
char *algo,
  * device
  */
 #if defined(USE_HOSTCC)
-# if defined(CONFIG_FIT_SIGNATURE)
+# if CONFIG_IS_ENABLED(FIT_SIGNATURE)
 #  define IMAGE_ENABLE_SIGN    1
 #  define FIT_IMAGE_ENABLE_VERIFY      1
 #  include <openssl/evp.h>
diff --git a/tools/Kconfig b/tools/Kconfig
index 539708f277..cfad26302c 100644
--- a/tools/Kconfig
+++ b/tools/Kconfig
@@ -46,6 +46,7 @@ config TOOLS_FIT_RSASSA_PSS
          Support the rsassa-pss signature scheme in the tools builds
 
 config TOOLS_FIT_SIGNATURE
+       depends on TOOLS_LIBCRYPTO
        def_bool y
        help
          Enable signature verification of FIT uImages in the tools builds
diff --git a/tools/fit_image.c b/tools/fit_image.c
index 8a18b1b0ba..148dc5df40 100644
--- a/tools/fit_image.c
+++ b/tools/fit_image.c
@@ -61,7 +61,7 @@ static int fit_add_file_data(struct image_tool_params 
*params, size_t size_inc,
                ret = fit_set_timestamp(ptr, 0, time);
        }
 
-       if (!ret)
+       if (CONFIG_IS_ENABLED(FIT_SIGNATURE) && !ret)
                ret = fit_pre_load_data(params->keydir, dest_blob, ptr);
 
        if (!ret) {
diff --git a/tools/image-host.c b/tools/image-host.c
index 4a24dee815..d09a03bd76 100644
--- a/tools/image-host.c
+++ b/tools/image-host.c
@@ -1119,6 +1119,7 @@ static int fit_config_add_verification_data(const char 
*keydir,
        return 0;
 }
 
+#if CONFIG_IS_ENABLED(FIT_SIGNATURE)
 /*
  * 0) open file (open)
  * 1) read certificate (PEM_read_X509)
@@ -1227,6 +1228,7 @@ int fit_pre_load_data(const char *keydir, void *keydest, 
void *fit)
  out:
        return ret;
 }
+#endif
 
 int fit_cipher_data(const char *keydir, void *keydest, void *fit,
                    const char *comment, int require_keys,
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 8306861ce5..866410934e 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -115,7 +115,7 @@ static void usage(const char *msg)
                "          -B => align size in hex for FIT structure and 
header\n"
                "          -b => append the device tree binary to the FIT\n"
                "          -t => update the timestamp in the FIT\n");
-#ifdef CONFIG_FIT_SIGNATURE
+#if CONFIG_IS_ENABLED(FIT_SIGNATURE)
        fprintf(stderr,
                "Signing / verified boot options: [-k keydir] [-K dtb] [ -c 
<comment>] [-p addr] [-r] [-N engine]\n"
                "          -k => set directory containing private keys\n"
@@ -130,8 +130,9 @@ static void usage(const char *msg)
                "          -o => algorithm to use for signing\n");
 #else
        fprintf(stderr,
-               "Signing / verified boot not supported (CONFIG_FIT_SIGNATURE 
undefined)\n");
+               "Signing / verified boot not supported 
(CONFIG_TOOLS_FIT_SIGNATURE undefined)\n");
 #endif
+
        fprintf(stderr, "       %s -V ==> print version information and exit\n",
                params.cmdname);
        fprintf(stderr, "Use '-T list' to see a list of available image 
types\n");
-- 
2.39.0

Reply via email to