[U-Boot] [RFC 05/15] include: image.h: export hash algorithm helper functions

Simon Glass sjg at chromium.org
Wed Sep 25 20:42:06 UTC 2019


On Tue, 17 Sep 2019 at 19:23, AKASHI Takahiro
<takahiro.akashi at linaro.org> wrote:
>
> This commit allows us to use common/image-sig.c even if CONFIG_FIT
> is disabled but CONFIG_EFI_LOADER is enabled.
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
> ---
>  include/image.h | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)

Reviewed-by: Simon Glass <sjg at chromium.org>

BTW I think it should be possible to remove these things in the header
file now. Please see below.

>
> diff --git a/include/image.h b/include/image.h
> index 685f5181c829..c9fe1d8eaed8 100644
> --- a/include/image.h
> +++ b/include/image.h
> @@ -53,7 +53,7 @@ struct fdt_region;
>
>  #endif /* USE_HOSTCC */
>
> -#if IMAGE_ENABLE_FIT
> +#if IMAGE_ENABLE_FIT || defined(CONFIG_EFI_SECURE_BOOT)
>  #include <hash.h>
>  #include <linux/libfdt.h>
>  #include <fdt_support.h>
> @@ -86,13 +86,14 @@ struct fdt_region;
>  #endif
>
>  #if defined(CONFIG_FIT_ENABLE_SHA256_SUPPORT) || \
> -       defined(CONFIG_SPL_SHA256_SUPPORT)
> +       defined(CONFIG_SPL_SHA256_SUPPORT) || \
> +       defined(CONFIG_EFI_SECURE_BOOT)
>  #define IMAGE_ENABLE_SHA256    1
>  #else
>  #define IMAGE_ENABLE_SHA256    0
>  #endif

We can probably use (in the C file):

if (IS_ENABLED(CONFIG_...) || IS_ENABLED(CONFIG_...) ...

>
> -#endif /* IMAGE_ENABLE_FIT */
> +#endif /* IMAGE_ENABLE_FIT || defined(CONFIG_EFI_SECURE_BOOT) */
>
>  #ifdef CONFIG_SYS_BOOT_GET_CMDLINE
>  # define IMAGE_BOOT_GET_CMDLINE                1
> @@ -1085,6 +1086,7 @@ int fit_conf_get_prop_node(const void *fit, int noffset,
>
>  int fit_check_ramdisk(const void *fit, int os_noffset,
>                 uint8_t arch, int verify);
> +#endif /* IMAGE_ENABLE_FIT */
>
>  int calculate_hash(const void *data, int data_len, const char *algo,
>                         uint8_t *value, int *value_len);
> @@ -1143,7 +1145,6 @@ struct image_sign_info {
>         const char *require_keys;       /* Value for 'required' property */
>         const char *engine_id;          /* Engine to use for signing */
>  };
> -#endif /* Allow struct image_region to always be defined for rsa.h */
>
>  /* A part of an image, used for hashing */
>  struct image_region {
> @@ -1151,7 +1152,7 @@ struct image_region {
>         int size;
>  };
>
> -#if IMAGE_ENABLE_FIT
> +#if IMAGE_ENABLE_FIT || defined(CONFIG_EFI_SECURE_BOOT)
>
>  #if IMAGE_ENABLE_VERIFY
>  # include <u-boot/rsa-checksum.h>
> @@ -1252,7 +1253,9 @@ struct crypto_algo *image_get_crypto_algo(const char *full_name);
>   * @return pointer to algorithm information, or NULL if not found
>   */
>  struct padding_algo *image_get_padding_algo(const char *name);
> +#endif /* IMAGE_ENABLE_FIT || defined(CONFIG_EFI_SECURE_BOOT) */
>
> +#if IMAGE_ENABLE_FIT
>  /**
>   * fit_image_verify_required_sigs() - Verify signatures marked as 'required'
>   *
> @@ -1328,7 +1331,7 @@ static inline int fit_image_check_target_arch(const void *fdt, int node)
>  #define fit_unsupported(msg)
>  #define fit_unsupported_reset(msg)
>  #endif /* CONFIG_FIT_VERBOSE */
> -#endif /* CONFIG_FIT */
> +#endif /* IMAGE_ENABLE_FIT */
>
>  #if defined(CONFIG_ANDROID_BOOT_IMAGE)
>  struct andr_img_hdr;
> --
> 2.21.0
>

Regards,
Simon


More information about the U-Boot mailing list