From: "Alex G." <mr.nuke.me@gmail.com>
To: Simon Glass <sjg@chromium.org>,
U-Boot Mailing List <u-boot@lists.denx.de>
Cc: Andre Przywara <andre.przywara@arm.com>,
Rasmus Villemoes <rasmus.villemoes@prevas.dk>,
Robert Marko <robert.marko@sartura.hr>,
Masahiro Yamada <masahiroy@kernel.org>,
Tom Rini <trini@konsulko.com>,
Joe Hershberger <joe.hershberger@ni.com>,
Marek Vasut <marex@denx.de>
Subject: Re: [PATCH v5 10/29] image: Use Kconfig to enable FIT_RSASSA_PSS on host
Date: Tue, 5 Oct 2021 13:32:15 -0500 [thread overview]
Message-ID: <1bf0c28c-12db-df80-51dc-5855e1974aa5@gmail.com> (raw)
In-Reply-To: <20210925194327.v5.10.I0481c8d9b6f4bd7e467d0324c81295dd0a9bbc96@changeid>
On 9/25/21 8:43 PM, Simon Glass wrote:
> Add a host Kconfig for FIT_RSASSA_PSS. With this we can use
> CONFIG_IS_ENABLED(FIT_RSASSA_PSS) directly in the host build, so drop the
> forcing of this in the image.h header.
>
> Drop the #ifdef around padding_pss_verify() too since it is not needed.
> Use the compiler to check the config where possible, instead of the
> preprocessor.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
> ---
>
> Changes in v5:
> - Avoid preprocessor in a few more places
> - Use TOOLS_ instead of HOST_
>
> include/image.h | 3 ---
> include/u-boot/rsa.h | 2 --
> lib/rsa/rsa-sign.c | 5 ++---
> lib/rsa/rsa-verify.c | 16 +++-------------
> tools/Kconfig | 5 +++++
> 5 files changed, 10 insertions(+), 21 deletions(-)
Now that's what I'm talking about! deletions > insertions
>
> diff --git a/include/image.h b/include/image.h
> index 6efbef06e64..dc872ef5b24 100644
> --- a/include/image.h
> +++ b/include/image.h
> @@ -27,9 +27,6 @@ struct fdt_region;
> #include <sys/types.h>
> #include <linux/kconfig.h>
>
> -/* new uImage format support enabled on host */
> -#define CONFIG_FIT_RSASSA_PSS 1
> -
> #define IMAGE_ENABLE_IGNORE 0
> #define IMAGE_INDENT_STRING ""
>
> diff --git a/include/u-boot/rsa.h b/include/u-boot/rsa.h
> index 89a9c4caa0a..7556aa5b4b7 100644
> --- a/include/u-boot/rsa.h
> +++ b/include/u-boot/rsa.h
> @@ -103,11 +103,9 @@ int padding_pkcs_15_verify(struct image_sign_info *info,
> uint8_t *msg, int msg_len,
> const uint8_t *hash, int hash_len);
>
> -#ifdef CONFIG_FIT_RSASSA_PSS
> int padding_pss_verify(struct image_sign_info *info,
> uint8_t *msg, int msg_len,
> const uint8_t *hash, int hash_len);
> -#endif /* CONFIG_FIT_RSASSA_PSS */
>
> #define RSA_DEFAULT_PADDING_NAME "pkcs-1.5"
>
> diff --git a/lib/rsa/rsa-sign.c b/lib/rsa/rsa-sign.c
> index c27a784c429..0579e5294ee 100644
> --- a/lib/rsa/rsa-sign.c
> +++ b/lib/rsa/rsa-sign.c
> @@ -401,15 +401,14 @@ static int rsa_sign_with_key(EVP_PKEY *pkey, struct padding_algo *padding_algo,
> goto err_sign;
> }
>
> -#ifdef CONFIG_FIT_RSASSA_PSS
> - if (padding_algo && !strcmp(padding_algo->name, "pss")) {
> + if (CONFIG_IS_ENABLED(FIT_RSASSA_PSS) && padding_algo &&
> + !strcmp(padding_algo->name, "pss")) {
> if (EVP_PKEY_CTX_set_rsa_padding(ckey,
> RSA_PKCS1_PSS_PADDING) <= 0) {
> ret = rsa_err("Signer padding setup failed");
> goto err_sign;
> }
> }
> -#endif /* CONFIG_FIT_RSASSA_PSS */
>
> for (i = 0; i < region_count; i++) {
> if (!EVP_DigestSignUpdate(context, region[i].data,
> diff --git a/lib/rsa/rsa-verify.c b/lib/rsa/rsa-verify.c
> index ad6d33d043a..9e522d210d7 100644
> --- a/lib/rsa/rsa-verify.c
> +++ b/lib/rsa/rsa-verify.c
> @@ -102,7 +102,6 @@ U_BOOT_PADDING_ALGO(pkcs_15) = {
> };
> #endif
>
> -#ifdef CONFIG_FIT_RSASSA_PSS
> static void u32_i2osp(uint32_t val, uint8_t *buf)
> {
> buf[0] = (uint8_t)((val >> 24) & 0xff);
> @@ -311,9 +310,6 @@ U_BOOT_PADDING_ALGO(pss) = {
> };
> #endif
>
> -#endif
> -
> -#if CONFIG_IS_ENABLED(FIT_SIGNATURE) || CONFIG_IS_ENABLED(RSA_VERIFY_WITH_PKEY)
> /**
> * rsa_verify_key() - Verify a signature against some data using RSA Key
> *
> @@ -385,9 +381,7 @@ static int rsa_verify_key(struct image_sign_info *info,
>
> return 0;
> }
> -#endif
>
> -#if CONFIG_IS_ENABLED(RSA_VERIFY_WITH_PKEY)
> /**
> * rsa_verify_with_pkey() - Verify a signature against some data using
> * only modulus and exponent as RSA key properties.
> @@ -408,6 +402,9 @@ int rsa_verify_with_pkey(struct image_sign_info *info,
> struct key_prop *prop;
> int ret;
>
> + if (!CONFIG_IS_ENABLED(RSA_VERIFY_WITH_PKEY))
> + return -EACCES;
> +
> /* Public key is self-described to fill key_prop */
> ret = rsa_gen_key_prop(info->key, info->keylen, &prop);
> if (ret) {
> @@ -422,13 +419,6 @@ int rsa_verify_with_pkey(struct image_sign_info *info,
>
> return ret;
> }
> -#else
> -int rsa_verify_with_pkey(struct image_sign_info *info,
> - const void *hash, uint8_t *sig, uint sig_len)
> -{
> - return -EACCES;
> -}
> -#endif
>
> #if CONFIG_IS_ENABLED(FIT_SIGNATURE)
> /**
> diff --git a/tools/Kconfig b/tools/Kconfig
> index 9d1c0efd40c..8685c800f93 100644
> --- a/tools/Kconfig
> +++ b/tools/Kconfig
> @@ -35,6 +35,11 @@ config TOOLS_FIT_PRINT
> help
> Print the content of the FIT verbosely in the tools builds
>
> +config TOOLS_FIT_RSASSA_PSS
> + def_bool y
> + help
> + Support the rsassa-pss signature scheme in the tools builds
If we're going to have these TOOLS_ configs always on, what's the point
in adding a help text?
> +
> config TOOLS_FIT_SIGNATURE
> def_bool y
> help
>
next prev parent reply other threads:[~2021-10-05 18:32 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-26 1:43 [PATCH v5 00/29] image: Reduce #ifdefs and ad-hoc defines in image code (Part B) Simon Glass
2021-09-26 1:43 ` [PATCH v5 01/29] compiler: Rename host_build() to tools_build() Simon Glass
2021-10-05 18:09 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 02/29] kconfig: Add tools support to CONFIG_IS_ENABLED() Simon Glass
2021-09-27 16:11 ` Alex G.
2021-09-27 16:50 ` Masahiro Yamada
2021-09-27 20:17 ` Simon Glass
2021-09-27 20:17 ` Simon Glass
2021-10-05 18:11 ` Alex G.
2021-10-07 0:26 ` Tom Rini
2021-10-07 2:49 ` Simon Glass
2021-10-07 2:52 ` Tom Rini
2021-10-07 13:32 ` Simon Glass
2021-10-07 13:42 ` Tom Rini
2021-10-07 18:02 ` Simon Glass
2021-10-07 18:30 ` Tom Rini
2021-10-07 18:50 ` Simon Glass
2021-10-07 19:32 ` Alex G.
2021-10-07 19:39 ` Tom Rini
2021-10-07 20:33 ` Alex G.
2021-10-07 21:04 ` Tom Rini
2021-10-07 21:15 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 03/29] image: Add Kconfig options for FIT in the tools build Simon Glass
2021-10-05 18:17 ` Alex G.
2021-10-05 18:17 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 04/29] spl: cypto: Bring back SPL_ versions of SHA Simon Glass
2021-10-05 18:19 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 05/29] hash: Use Kconfig to enable hashing in host tools and SPL Simon Glass
2021-09-27 15:53 ` Alex G.
2021-09-27 16:06 ` Simon Glass
2021-09-27 16:12 ` Alex G.
2021-10-05 18:21 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 06/29] hash: Drop some #ifdefs in hash.c Simon Glass
2021-10-05 18:24 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 07/29] image: Drop IMAGE_ENABLE_FIT Simon Glass
2021-10-05 18:26 ` Alex G.
2021-10-09 1:39 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 08/29] image: Drop IMAGE_ENABLE_OF_LIBFDT Simon Glass
2021-10-05 18:27 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 09/29] image: Use Kconfig to enable CONFIG_FIT_VERBOSE on host Simon Glass
2021-10-05 18:29 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 10/29] image: Use Kconfig to enable FIT_RSASSA_PSS " Simon Glass
2021-10-05 18:32 ` Alex G. [this message]
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 11/29] image: Use the correct checks for CRC32 Simon Glass
2021-10-05 18:34 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 12/29] image: Drop IMAGE_BOOT_GET_CMDLINE Simon Glass
2021-10-05 18:36 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 13/29] image: Drop IMAGE_OF_BOARD_SETUP Simon Glass
2021-10-05 18:57 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 14/29] image: Drop IMAGE_OF_SYSTEM_SETUP Simon Glass
2021-10-05 18:58 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 15/29] image: Drop IMAGE_ENABLE_IGNORE Simon Glass
2021-10-05 18:58 ` Alex G.
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 16/29] efi: Correct dependency on FIT_SIGNATURE Simon Glass
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 19/29] image: Tidy up fit_unsupported_reset() Simon Glass
2021-10-09 1:40 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 20/29] image: Drop unnecessary #ifdefs from image.h Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 21/29] image: Drop #ifdefs for fit_print_contents() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 22/29] image: Drop most #ifdefs in image-board.c Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 23/29] image: Reduce variable scope in boot_get_ramdisk() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 24/29] image: Split up boot_get_ramdisk() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 25/29] image: Remove #ifdefs from select_ramdisk() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-12-17 17:40 ` Neil Armstrong
2021-09-26 1:43 ` [PATCH v5 26/29] image: Remove some #ifdefs from image-fit and image-fit-sig Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 27/29] image: Reduce variable scope in boot_get_fdt() Simon Glass
2021-10-09 1:41 ` Tom Rini
2021-09-26 1:43 ` [PATCH v5 28/29] image: Split up boot_get_fdt() Simon Glass
2021-10-09 1:41 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1bf0c28c-12db-df80-51dc-5855e1974aa5@gmail.com \
--to=mr.nuke.me@gmail.com \
--cc=andre.przywara@arm.com \
--cc=joe.hershberger@ni.com \
--cc=marex@denx.de \
--cc=masahiroy@kernel.org \
--cc=rasmus.villemoes@prevas.dk \
--cc=robert.marko@sartura.hr \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.