Hi Ruchika, On 6 January 2015 at 02:38, Ruchika Gupta <ruchika.gu...@freescale.com> wrote: > Hi Simon, > >> -----Original Message----- >> From: s...@google.com [mailto:s...@google.com] On Behalf Of Simon Glass >> Sent: Saturday, January 03, 2015 3:54 AM >> To: Gupta Ruchika-R66431 >> Cc: U-Boot Mailing List; Sun York-R58495; Wolfgang Denk >> Subject: Re: [PATCH 8/9] [v4] hash: Add function to find hash_algo struct >> with progressive hash >> >> Hi Ruchika, >> >> On 30 December 2014 at 02:30, Ruchika Gupta <ruchika.gu...@freescale.com> >> wrote: >> > The hash_algo structure has some implementations in which progressive >> > hash API's are not defined. These are basically the hardware based >> > implementations of SHA. An API is added to find the algo which has >> > progressive hash API's defined. This can then be integrated with RSA >> > checksum library which uses Progressive Hash API's. >> > >> > Signed-off-by: Ruchika Gupta <ruchika.gu...@freescale.com> >> > CC: Simon Glass <s...@chromium.org> >> > --- >> > Changes in v4: >> > Few cosmetic changes. Currently I have not replaced CONFIG_SHA1 with >> CONFIG_CMD_SHA1SUM. >> > Waiting for reply from Simon and Denx for the same. >> >> ./tools/buildman/buildman -b try-rsa MPC8308RDB boards.cfg is up to date. >> Nothing to do. >> Building 10 commits for 1 boards (1 thread, 32 jobs per thread) >> 10 0 0 /10 MPC8308RDB >> (try-rsa=458103: asc) u> ./tools/buildman/buildman -b try-rsa MPC8308RDB -sS >> boards.cfg is up to date. Nothing to do. >> Summary of 10 commits for 1 boards (1 thread, 32 jobs per thread) >> 01: Merge branch 'master' of git://git.denx.de/u-boot-usb >> 02: rsa: Split the rsa-verify to separate the modular exponentiation >> 03: FIT: Modify option FIT_SIGNATURE in Kconfig >> 04: DM: crypto/rsa: Add rsa Modular Exponentiation DM driver >> 05: configs: Move CONFIG_FIT_SIGNATURE to defconfig >> 06: lib/rsa: Modify rsa to use DM driver >> 07: DM: crypto/fsl - Add Freescale rsa DM driver >> 08: lib/rsa: Add Kconfig for devices supporting RSA Modular Exponentiation >> 09: hash: Add function to find hash_algo struct with progressive hash >> powerpc: (for 1/1 boards) all +208.0 data +28.0 text +180.0 >> 10: rsa: Use checksum algorithms from struct hash_algo (no errors to report) >> (try-rsa=458103: asc) u> >> >> So this adds 180 bytes of code space. I really don't think that is a big >> problem, so I think this patch is fine. I'll Wolfgang chime in if he >> disagrees. >> >> > >> > Changes in v3 : >> > Corrected ifdef for SHA1 >> > >> > Changes in v2 : >> > Added commit message >> > >> > common/hash.c | 33 ++++++++++++++++++++++++--------- include/hash.h >> > | 14 ++++++++++++++ >> > 2 files changed, 38 insertions(+), 9 deletions(-) >> > >> > diff --git a/common/hash.c b/common/hash.c index 12d6759..ea1ec60 >> > 100644 >> > --- a/common/hash.c >> > +++ b/common/hash.c >> > @@ -20,7 +20,7 @@ >> > #include <asm/io.h> >> > #include <asm/errno.h> >> > >> > -#ifdef CONFIG_CMD_SHA1SUM >> > +#ifdef CONFIG_SHA1 >> > static int hash_init_sha1(struct hash_algo *algo, void **ctxp) { >> > sha1_context *ctx = malloc(sizeof(sha1_context)); @@ -125,12 >> > +125,7 @@ static struct hash_algo hash_algo[] = { >> > CHUNKSZ_SHA256, >> > }, >> > #endif >> > - /* >> > - * This is CONFIG_CMD_SHA1SUM instead of CONFIG_SHA1 since >> otherwise >> > - * it bloats the code for boards which use SHA1 but not the 'hash' >> > - * or 'sha1sum' commands. >> > - */ >> > -#ifdef CONFIG_CMD_SHA1SUM >> > +#ifdef CONFIG_SHA1 >> > { >> > "sha1", >> > SHA1_SUM_LEN, >> > @@ -140,7 +135,6 @@ static struct hash_algo hash_algo[] = { >> > hash_update_sha1, >> > hash_finish_sha1, >> > }, >> > -#define MULTI_HASH >> > #endif >> > #ifdef CONFIG_SHA256 >> > { >> > @@ -152,7 +146,6 @@ static struct hash_algo hash_algo[] = { >> > hash_update_sha256, >> > hash_finish_sha256, >> > }, >> > -#define MULTI_HASH >> > #endif >> > { >> > "crc32", >> > @@ -165,6 +158,10 @@ static struct hash_algo hash_algo[] = { >> > }, >> > }; >> > >> > +#if defined(CONFIG_SHA256) || defined(CONFIG_CMD_SHA1SUM) #define >> > +MULTI_HASH #endif >> > + >> > #if defined(CONFIG_HASH_VERIFY) || defined(CONFIG_CMD_HASH) #define >> > MULTI_HASH #endif @@ -311,6 +308,24 @@ int hash_lookup_algo(const >> > char *algo_name, struct hash_algo **algop) >> > return -EPROTONOSUPPORT; >> > } >> > >> > +int hash_progressive_lookup_algo(const char *algo_name, >> > + struct hash_algo **algop) { >> > + int i; >> > + >> > + for (i = 0; i < ARRAY_SIZE(hash_algo); i++) { >> > + if (!strcmp(algo_name, hash_algo[i].name)) { >> > + if (hash_algo[i].hash_init) { >> > + *algop = &hash_algo[i]; >> > + return 0; >> > + } >> > + } >> > + } >> >> Can't you just call hash_lookup_algo() and then check for hash_init? > Hash_lookup_algo always searches from the start of hash_algo[]. So what you > have suggested above wouldn't work.
OK I don't fully understand that, but let's go with what you have for this series. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot