public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Alex G. <mr.nuke.me@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH 06/18] image: Drop IMAGE_ENABLE_SHA1
Date: Thu, 20 May 2021 19:07:19 -0500	[thread overview]
Message-ID: <d9aacd54-90ed-71b6-d776-5e221c9f9efb@gmail.com> (raw)
In-Reply-To: <CAPnjgZ2MQ-BUz4dD+PEiPigcJCSTybjf2o1OT8tLjf-Oq=kc_Q@mail.gmail.com>



On 5/20/21 6:17 PM, Simon Glass wrote:
> Hi Alex,
> 
> On Thu, 20 May 2021 at 17:13, Alex G. <mr.nuke.me@gmail.com> wrote:
>>
>>
>>
>> On 5/20/21 12:52 PM, Simon Glass wrote:
>>> Hi Alex,
>>>
>>> On Wed, 19 May 2021 at 20:41, Alex G. <mr.nuke.me@gmail.com> wrote:
>>>>
>>>>
>>>>
>>>> On 5/19/21 4:55 PM, Simon Glass wrote:
>>>>> Hi Alex,
>>>>>
>>>>> On Wed, 19 May 2021 at 11:44, Alex G <mr.nuke.me@gmail.com> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 5/19/21 11:36 AM, Simon Glass wrote:
>>>>>>> Hi Alexandru,
>>>>>>>
>>>>>>> On Mon, 17 May 2021 at 10:38, Alexandru Gagniuc <mr.nuke.me@gmail.com> wrote:
>>>>>>>>
>>>>>>>> From: Simon Glass <sjg@chromium.org>
>>>>>>>>
>>>>>>>> We already have a host Kconfig for SHA1. Use CONFIG_IS_ENABLED(SHA1)
>>>>>>>> directly in the code shared with the host build, so we can drop the
>>>>>>>> unnecessary indirection.
>>>>>>>>
>>>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>>>>> Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
>>>>>>>> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
>>>>>>>> ---
>>>>>>>>      common/image-fit.c | 2 +-
>>>>>>>>      include/image.h    | 8 --------
>>>>>>>>      2 files changed, 1 insertion(+), 9 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/common/image-fit.c b/common/image-fit.c
>>>>>>>> index e614643fe3..24e92a8e92 100644
>>>>>>>> --- a/common/image-fit.c
>>>>>>>> +++ b/common/image-fit.c
>>>>>>>> @@ -1218,7 +1218,7 @@ int calculate_hash(const void *data, int data_len, const char *algo,
>>>>>>>>                                                             CHUNKSZ_CRC32);
>>>>>>>>                     *((uint32_t *)value) = cpu_to_uimage(*((uint32_t *)value));
>>>>>>>>                     *value_len = 4;
>>>>>>>> -       } else if (IMAGE_ENABLE_SHA1 && strcmp(algo, "sha1") == 0) {
>>>>>>>> +       } else if (CONFIG_IS_ENABLED(SHA1) && strcmp(algo, "sha1") == 0) {
>>>>>>>
>>>>>>> This can only work if the my host Kconfig patch comes first. Otherwise
>>>>>>> this code will just be skipped on the host.
>>>>>>
>>>>>> I was scratching my head too as to why this works in practice, but not
>>>>>> in theory. There is a #define CONFIG_SHA1 in image.h.
>>>>>>
>>>>>> Although not a perfect fix, we go from two ways to enable SHA1 ("#define
>>>>>> IMAGE_ENABLE_SHA1", and "#define CONFIG_SHA1"), to just one. That's why
>>>>>> I think this change is an improvement, and part of this series.
>>>>>
>>>>> No, we really should not do that...everything needs to be in Kconfig.
>>>>
>>>> I agree for target code. But, as a long term solution, let's look at how
>>>> we can get hash algos in linker lists, like we're proposing to do for
>>>> crytpo algos. Or I could just drop this change in v2.
>>>
>>> Would it not be easier to have a host Kconfig for these? You seem to
>>> be going to extreme lengths to avoid it, but it seems like the
>>> simplest solution, easy to understand, no effect on code size and
>>> scalable to the future.
>>
>> It's easy for the short term in terms if the goal is to get something
>> merged. It just hides more fundamental issues with the code. For
>> ecample, why is there hash_calculate() and clacultae_hash()
> 
> It is just a naming issue, isn't it? They are quite different functions.

Because one resets the watchdog after every CHUNK bytes and the other 
doesn't?

>>
>> I was under the impression that we were agreed on the combination of
>> patches. I won't try to defend your patch from yourself. I'll drop the
>> hash changes from v2 if it helps get things moving along.
> 
> I'm OK with this as a short-term fix to get this series through. But I
> think we are going to end up with a Kconfig solution at some point.
> What do you think?

I think it's possible and reasonable to have common code without host 
Kconfig. coreboot did it.

Alex

  reply	other threads:[~2021-05-21  0:07 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-17 16:38 [PATCH 00/18] image: Reduce #ifdef abuse in image code Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 01/18] image: Shorten FIT_ENABLE_SHAxxx_SUPPORT Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 02/18] image: Rename SPL_SHAxxx_SUPPORT to SPL_FIT_SHAxxx Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 03/18] image: Rename CONFIG_FIT_ENABLE_RSASSA_PSS_SUPPORT Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 04/18] Kconfig: Rename SPL_CRC32_SUPPORT to SPL_CRC32 Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 05/18] Kconfig: Rename SPL_MD5_SUPPORT to SPL_MD5 Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 06/18] image: Drop IMAGE_ENABLE_SHA1 Alexandru Gagniuc
2021-05-19 16:36   ` Simon Glass
2021-05-19 17:44     ` Alex G
2021-05-19 21:55       ` Simon Glass
2021-05-20  2:41         ` Alex G.
2021-05-20 17:52           ` Simon Glass
2021-05-20 23:13             ` Alex G.
2021-05-20 23:17               ` Simon Glass
2021-05-21  0:07                 ` Alex G. [this message]
2021-05-21 19:39                   ` Simon Glass
2021-05-24 19:59                     ` Alex G.
2021-06-22 13:31                       ` Simon Glass
2021-05-17 16:38 ` [PATCH 07/18] image: Drop IMAGE_ENABLE_SHAxxx Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 08/18] image: Drop IMAGE_ENABLE_BEST_MATCH Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 09/18] common: Move host-only logic in image-sig.c to separate file Alexandru Gagniuc
2021-05-17 19:47   ` Alex G.
2021-05-19 16:36     ` Simon Glass
2021-05-17 16:38 ` [PATCH 10/18] common: image-sig.c: Remove host-specific logic and #ifdefs Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 11/18] image: Add support for placing crypto_algo in linker lists Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 12/18] image: rsa: Move verification algorithm to a linker list Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 13/18] image: image-sig.c: Remove crypto_algos array Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 14/18] lib: ecdsa: Remove #ifdefs from ecdsa.h Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 15/18] lib: rsa: Remove #ifdefs from rsa.h Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 16/18] image: Eliminate IMAGE_ENABLE_VERIFY macro Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 17/18] image: Eliminate IMAGE_ENABLE_VERIFY_ECDSA macro Alexandru Gagniuc
2021-05-17 16:38 ` [PATCH 18/18] [UNTESTED] image: Add support for relocating crypto_algos in linker lists Alexandru Gagniuc

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=d9aacd54-90ed-71b6-d776-5e221c9f9efb@gmail.com \
    --to=mr.nuke.me@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox