summaryrefslogtreecommitdiff
path: root/include/image.h
diff options
context:
space:
mode:
authorHeiko Schocher <hs@denx.de>2014-03-03 12:19:30 +0100
committerTom Rini <trini@ti.com>2014-03-21 16:40:38 -0400
commit29a23f9d6c533f8371be3ae0268c4c75866291b2 (patch)
treecb7e69f6a7903ac5f63c03f99aa4f34b9fd151d7 /include/image.h
parent6bf4ca076f8c7a3c1c5abd1cbb059516f7af15df (diff)
downloadu-boot-imx-29a23f9d6c533f8371be3ae0268c4c75866291b2.zip
u-boot-imx-29a23f9d6c533f8371be3ae0268c4c75866291b2.tar.gz
u-boot-imx-29a23f9d6c533f8371be3ae0268c4c75866291b2.tar.bz2
tools, fit_check_sign: verify a signed fit image
add host tool "fit_check_sign" which verifies, if a fit image is signed correct. Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/image.h')
-rw-r--r--include/image.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/include/image.h b/include/image.h
index 540afaa..2508d7d 100644
--- a/include/image.h
+++ b/include/image.h
@@ -832,7 +832,7 @@ int calculate_hash(const void *data, int data_len, const char *algo,
#if defined(CONFIG_FIT_SIGNATURE)
# ifdef USE_HOSTCC
# define IMAGE_ENABLE_SIGN 1
-# define IMAGE_ENABLE_VERIFY 0
+# define IMAGE_ENABLE_VERIFY 1
# include <openssl/evp.h>
#else
# define IMAGE_ENABLE_SIGN 0
@@ -844,7 +844,9 @@ int calculate_hash(const void *data, int data_len, const char *algo,
#endif
#ifdef USE_HOSTCC
-# define gd_fdt_blob() NULL
+void *image_get_host_blob(void);
+void image_set_host_blob(void *host_blob);
+# define gd_fdt_blob() image_get_host_blob()
#else
# define gd_fdt_blob() (gd->fdt_blob)
#endif
@@ -881,14 +883,11 @@ struct checksum_algo {
const int checksum_len;
const int pad_len;
#if IMAGE_ENABLE_SIGN
- const EVP_MD *(*calculate)(void);
-#else
-#if IMAGE_ENABLE_VERIFY
+ const EVP_MD *(*calculate_sign)(void);
+#endif
void (*calculate)(const struct image_region region[],
int region_count, uint8_t *checksum);
const uint8_t *rsa_padding;
-#endif
-#endif
};
struct image_sig_algo {
@@ -1009,7 +1008,11 @@ struct image_region *fit_region_make_list(const void *fit,
static inline int fit_image_check_target_arch(const void *fdt, int node)
{
+#ifndef USE_HOSTCC
return fit_image_check_arch(fdt, node, IH_ARCH_DEFAULT);
+#else
+ return 0;
+#endif
}
#ifdef CONFIG_FIT_VERBOSE