Re: [PATCH v1] cmd: md5sum: use hash_command

2024-03-02 Thread Igor Opaniuk
Hi Tom,

On Sat, Mar 2, 2024 at 12:31 AM Tom Rini  wrote:

> On Sun, Feb 11, 2024 at 07:56:16PM +0100, Igor Opaniuk wrote:
>
> > From: Igor Opaniuk 
> >
> > Drop old implementation and use hash_command() instead, as
> > how it's currently done for crc32 and sha1sum cmds.
> >
> > Test:
> > => md5sum 0x6000 0x200
> > md5 for 6000 ... 61ff ==> e6bbbe95f5b41996f4a9b9af7bbd4050
> >
> > Signed-off-by: Igor Opaniuk 
> > ---
> >
> >  cmd/md5sum.c | 149 ---
> >  1 file changed, 9 insertions(+), 140 deletions(-)
>
> This breaks building of imx8mm_phg.
>
Thanks, fixed and sent v2.


> --
> Tom
>



-- 
Best regards - Atentamente - Meilleures salutations

Igor Opaniuk

mailto: igor.opan...@gmail.com
skype: igor.opanyuk
http://ua.linkedin.com/in/iopaniuk


Re: [PATCH v1] cmd: md5sum: use hash_command

2024-03-01 Thread Tom Rini
On Sun, Feb 11, 2024 at 07:56:16PM +0100, Igor Opaniuk wrote:

> From: Igor Opaniuk 
> 
> Drop old implementation and use hash_command() instead, as
> how it's currently done for crc32 and sha1sum cmds.
> 
> Test:
> => md5sum 0x6000 0x200
> md5 for 6000 ... 61ff ==> e6bbbe95f5b41996f4a9b9af7bbd4050
> 
> Signed-off-by: Igor Opaniuk 
> ---
> 
>  cmd/md5sum.c | 149 ---
>  1 file changed, 9 insertions(+), 140 deletions(-)

This breaks building of imx8mm_phg.

-- 
Tom


signature.asc
Description: PGP signature


Re: [PATCH v1] cmd: md5sum: use hash_command

2024-02-29 Thread Igor Opaniuk
Hello Tom,

On Sun, Feb 11, 2024 at 7:56 PM Igor Opaniuk 
wrote:

> From: Igor Opaniuk 
>
> Drop old implementation and use hash_command() instead, as
> how it's currently done for crc32 and sha1sum cmds.
>
> Test:
> => md5sum 0x6000 0x200
> md5 for 6000 ... 61ff ==> e6bbbe95f5b41996f4a9b9af7bbd4050
>
> Signed-off-by: Igor Opaniuk 
> ---
>
>  cmd/md5sum.c | 149 ---
>  1 file changed, 9 insertions(+), 140 deletions(-)
>
> diff --git a/cmd/md5sum.c b/cmd/md5sum.c
> index 0f0e1d3dd68..618265e8d50 100644
> --- a/cmd/md5sum.c
> +++ b/cmd/md5sum.c
> @@ -7,7 +7,6 @@
>   * Wolfgang Denk, DENX Software Engineering, w...@denx.de.
>   */
>
> -#include 
>  #include 
>  #include 
>  #include 
> @@ -15,158 +14,28 @@
>  #include 
>  #include 
>
> -/*
> - * Store the resulting sum to an address or variable
> - */
> -static void store_result(const u8 *sum, const char *dest)
> -{
> -   unsigned int i;
> -
> -   if (*dest == '*') {
> -   u8 *ptr;
> -
> -   ptr = (u8 *)hextoul(dest + 1, NULL);
> -   for (i = 0; i < 16; i++)
> -   *ptr++ = sum[i];
> -   } else {
> -   char str_output[33];
> -   char *str_ptr = str_output;
> -
> -   for (i = 0; i < 16; i++) {
> -   sprintf(str_ptr, "%02x", sum[i]);
> -   str_ptr += 2;
> -   }
> -   env_set(dest, str_output);
> -   }
> -}
> -
> -#ifdef CONFIG_MD5SUM_VERIFY
> -static int parse_verify_sum(char *verify_str, u8 *vsum)
> -{
> -   if (*verify_str == '*') {
> -   u8 *ptr;
> -
> -   ptr = (u8 *)hextoul(verify_str + 1, NULL);
> -   memcpy(vsum, ptr, 16);
> -   } else {
> -   unsigned int i;
> -   char *vsum_str;
> -
> -   if (strlen(verify_str) == 32)
> -   vsum_str = verify_str;
> -   else {
> -   vsum_str = env_get(verify_str);
> -   if (vsum_str == NULL || strlen(vsum_str) != 32)
> -   return 1;
> -   }
> -
> -   for (i = 0; i < 16; i++) {
> -   char *nullp = vsum_str + (i + 1) * 2;
> -   char end = *nullp;
> -
> -   *nullp = '\0';
> -   *(u8 *)(vsum + i) =
> -   hextoul(vsum_str + (i * 2), NULL);
> -   *nullp = end;
> -   }
> -   }
> -   return 0;
> -}
> -
> -int do_md5sum(struct cmd_tbl *cmdtp, int flag, int argc, char *const
> argv[])
> +static int do_md5sum(struct cmd_tbl *cmdtp, int flag, int argc,
> +char *const argv[])
>  {
> -   ulong addr, len;
> -   unsigned int i;
> -   u8 output[16];
> -   u8 vsum[16];
> -   int verify = 0;
> +   int flags = HASH_FLAG_ENV;
> int ac;
> -   char * const *av;
> -   void *buf;
> +   char *const *av;
>
> if (argc < 3)
> return CMD_RET_USAGE;
>
> av = argv + 1;
> ac = argc - 1;
> -   if (strcmp(*av, "-v") == 0) {
> -   verify = 1;
> +   if (IS_ENABLED(CONFIG_MD5SUM_VERIFY) && strcmp(*av, "-v") == 0) {
> +   flags |= HASH_FLAG_VERIFY;
> av++;
> ac--;
> -   if (ac < 3)
> -   return CMD_RET_USAGE;
> }
>
> -   addr = hextoul(*av++, NULL);
> -   len = hextoul(*av++, NULL);
> -
> -   buf = map_sysmem(addr, len);
> -   md5_wd(buf, len, output, CHUNKSZ_MD5);
> -   unmap_sysmem(buf);
> -
> -   if (!verify) {
> -   printf("md5 for %08lx ... %08lx ==> ", addr, addr + len -
> 1);
> -   for (i = 0; i < 16; i++)
> -   printf("%02x", output[i]);
> -   printf("\n");
> -
> -   if (ac > 2)
> -   store_result(output, *av);
> -   } else {
> -   char *verify_str = *av++;
> -
> -   if (parse_verify_sum(verify_str, vsum)) {
> -   printf("ERROR: %s does not contain a valid md5
> sum\n",
> -   verify_str);
> -   return 1;
> -   }
> -   if (memcmp(output, vsum, 16) != 0) {
> -   printf("md5 for %08lx ... %08lx ==> ", addr,
> -   addr + len - 1);
> -   for (i = 0; i < 16; i++)
> -   printf("%02x", output[i]);
> -   printf(" != ");
> -   for (i = 0; i < 16; i++)
> -   printf("%02x", vsum[i]);
> -   printf(" ** ERROR **\n");
> -   return 1;
> -   }
> -   }
> -
> -   return 0;
> -}
> -#else
> -static int do_md5sum(struct cmd_tbl *cmdtp, int flag, int 

[PATCH v1] cmd: md5sum: use hash_command

2024-02-11 Thread Igor Opaniuk
From: Igor Opaniuk 

Drop old implementation and use hash_command() instead, as
how it's currently done for crc32 and sha1sum cmds.

Test:
=> md5sum 0x6000 0x200
md5 for 6000 ... 61ff ==> e6bbbe95f5b41996f4a9b9af7bbd4050

Signed-off-by: Igor Opaniuk 
---

 cmd/md5sum.c | 149 ---
 1 file changed, 9 insertions(+), 140 deletions(-)

diff --git a/cmd/md5sum.c b/cmd/md5sum.c
index 0f0e1d3dd68..618265e8d50 100644
--- a/cmd/md5sum.c
+++ b/cmd/md5sum.c
@@ -7,7 +7,6 @@
  * Wolfgang Denk, DENX Software Engineering, w...@denx.de.
  */
 
-#include 
 #include 
 #include 
 #include 
@@ -15,158 +14,28 @@
 #include 
 #include 
 
-/*
- * Store the resulting sum to an address or variable
- */
-static void store_result(const u8 *sum, const char *dest)
-{
-   unsigned int i;
-
-   if (*dest == '*') {
-   u8 *ptr;
-
-   ptr = (u8 *)hextoul(dest + 1, NULL);
-   for (i = 0; i < 16; i++)
-   *ptr++ = sum[i];
-   } else {
-   char str_output[33];
-   char *str_ptr = str_output;
-
-   for (i = 0; i < 16; i++) {
-   sprintf(str_ptr, "%02x", sum[i]);
-   str_ptr += 2;
-   }
-   env_set(dest, str_output);
-   }
-}
-
-#ifdef CONFIG_MD5SUM_VERIFY
-static int parse_verify_sum(char *verify_str, u8 *vsum)
-{
-   if (*verify_str == '*') {
-   u8 *ptr;
-
-   ptr = (u8 *)hextoul(verify_str + 1, NULL);
-   memcpy(vsum, ptr, 16);
-   } else {
-   unsigned int i;
-   char *vsum_str;
-
-   if (strlen(verify_str) == 32)
-   vsum_str = verify_str;
-   else {
-   vsum_str = env_get(verify_str);
-   if (vsum_str == NULL || strlen(vsum_str) != 32)
-   return 1;
-   }
-
-   for (i = 0; i < 16; i++) {
-   char *nullp = vsum_str + (i + 1) * 2;
-   char end = *nullp;
-
-   *nullp = '\0';
-   *(u8 *)(vsum + i) =
-   hextoul(vsum_str + (i * 2), NULL);
-   *nullp = end;
-   }
-   }
-   return 0;
-}
-
-int do_md5sum(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
+static int do_md5sum(struct cmd_tbl *cmdtp, int flag, int argc,
+char *const argv[])
 {
-   ulong addr, len;
-   unsigned int i;
-   u8 output[16];
-   u8 vsum[16];
-   int verify = 0;
+   int flags = HASH_FLAG_ENV;
int ac;
-   char * const *av;
-   void *buf;
+   char *const *av;
 
if (argc < 3)
return CMD_RET_USAGE;
 
av = argv + 1;
ac = argc - 1;
-   if (strcmp(*av, "-v") == 0) {
-   verify = 1;
+   if (IS_ENABLED(CONFIG_MD5SUM_VERIFY) && strcmp(*av, "-v") == 0) {
+   flags |= HASH_FLAG_VERIFY;
av++;
ac--;
-   if (ac < 3)
-   return CMD_RET_USAGE;
}
 
-   addr = hextoul(*av++, NULL);
-   len = hextoul(*av++, NULL);
-
-   buf = map_sysmem(addr, len);
-   md5_wd(buf, len, output, CHUNKSZ_MD5);
-   unmap_sysmem(buf);
-
-   if (!verify) {
-   printf("md5 for %08lx ... %08lx ==> ", addr, addr + len - 1);
-   for (i = 0; i < 16; i++)
-   printf("%02x", output[i]);
-   printf("\n");
-
-   if (ac > 2)
-   store_result(output, *av);
-   } else {
-   char *verify_str = *av++;
-
-   if (parse_verify_sum(verify_str, vsum)) {
-   printf("ERROR: %s does not contain a valid md5 sum\n",
-   verify_str);
-   return 1;
-   }
-   if (memcmp(output, vsum, 16) != 0) {
-   printf("md5 for %08lx ... %08lx ==> ", addr,
-   addr + len - 1);
-   for (i = 0; i < 16; i++)
-   printf("%02x", output[i]);
-   printf(" != ");
-   for (i = 0; i < 16; i++)
-   printf("%02x", vsum[i]);
-   printf(" ** ERROR **\n");
-   return 1;
-   }
-   }
-
-   return 0;
-}
-#else
-static int do_md5sum(struct cmd_tbl *cmdtp, int flag, int argc,
-char *const argv[])
-{
-   unsigned long addr, len;
-   unsigned int i;
-   u8 output[16];
-   void *buf;
-
-   if (argc < 3)
-   return CMD_RET_USAGE;
-
-   addr = hextoul(argv[1], NULL);
-   len = hextoul(argv[2], NULL);
-
-   buf = map_sysmem(addr, len);
-   md5_wd(buf, len, output,