diff mbox series

[v3,05/25] md5: Remove md5 non-watchdog API

Message ID 20240528140955.1960172-6-raymond.mao@linaro.org
State RFC
Delegated to: Tom Rini
Headers show
Series Integrate MbedTLS v3.6 LTS with U-Boot | expand

Commit Message

Raymond Mao May 28, 2024, 2:09 p.m. UTC
We don't need an API specially for non-watchdog since md5_wd supports
it by enabling CONFIG_HW_WATCHDOG or CONFIG_WATCHDOG.
Set 0x10000 as default chunk size for MD5.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
---
Changes in v3
- Initial patch.

 board/friendlyarm/nanopi2/board.c |  3 ++-
 board/intel/edison/edison.c       |  3 ++-
 board/xilinx/zynq/bootimg.c       |  2 +-
 include/u-boot/md5.h              |  7 +------
 lib/md5.c                         | 15 ---------------
 5 files changed, 6 insertions(+), 24 deletions(-)

Comments

Ilias Apalodimas May 31, 2024, 6:39 a.m. UTC | #1
Would be good to get an Ack from board maintainers here

On Tue, 28 May 2024 at 17:12, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> We don't need an API specially for non-watchdog since md5_wd supports
> it by enabling CONFIG_HW_WATCHDOG or CONFIG_WATCHDOG.
> Set 0x10000 as default chunk size for MD5.
>
> Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
> ---
> Changes in v3
> - Initial patch.
>
>  board/friendlyarm/nanopi2/board.c |  3 ++-
>  board/intel/edison/edison.c       |  3 ++-
>  board/xilinx/zynq/bootimg.c       |  2 +-
>  include/u-boot/md5.h              |  7 +------
>  lib/md5.c                         | 15 ---------------
>  5 files changed, 6 insertions(+), 24 deletions(-)
>
> diff --git a/board/friendlyarm/nanopi2/board.c b/board/friendlyarm/nanopi2/board.c
> index 393c5a447d6..f203499f544 100644
> --- a/board/friendlyarm/nanopi2/board.c
> +++ b/board/friendlyarm/nanopi2/board.c
> @@ -264,7 +264,8 @@ static void make_ether_addr(u8 *addr)
>         hash[6] = readl(PHY_BASEADDR_ECID + 0x08);
>         hash[7] = readl(PHY_BASEADDR_ECID + 0x0c);
>
> -       md5((unsigned char *)&hash[4], 64, (unsigned char *)hash);
> +       md5_wd((unsigned char *)&hash[4], 64, (unsigned char *)hash,
> +              MD5_DEF_CHUNK_SZ);
>
>         hash[0] ^= hash[2];
>         hash[1] ^= hash[3];
> diff --git a/board/intel/edison/edison.c b/board/intel/edison/edison.c
> index 11e7f74e47c..1583d11c74d 100644
> --- a/board/intel/edison/edison.c
> +++ b/board/intel/edison/edison.c
> @@ -33,7 +33,8 @@ static void assign_serial(void)
>         if (!mmc)
>                 return;
>
> -       md5((unsigned char *)mmc->cid, sizeof(mmc->cid), ssn);
> +       md5_wd((unsigned char *)mmc->cid, sizeof(mmc->cid), ssn,
> +              MD5_DEF_CHUNK_SZ);
>
>         snprintf(usb0addr, sizeof(usb0addr), "02:00:86:%02x:%02x:%02x",
>                  ssn[13], ssn[14], ssn[15]);
> diff --git a/board/xilinx/zynq/bootimg.c b/board/xilinx/zynq/bootimg.c
> index 2f55078dd76..4b2245c0618 100644
> --- a/board/xilinx/zynq/bootimg.c
> +++ b/board/xilinx/zynq/bootimg.c
> @@ -136,7 +136,7 @@ int zynq_validate_partition(u32 start_addr, u32 len, u32 chksum_off)
>
>         memcpy(&checksum[0], (u32 *)chksum_off, MD5_CHECKSUM_SIZE);
>
> -       md5_wd((u8 *)start_addr, len, &calchecksum[0], 0x10000);
> +       md5_wd((u8 *)start_addr, len, &calchecksum[0], MD5_DEF_CHUNK_SZ);
>
>         if (!memcmp(checksum, calchecksum, MD5_CHECKSUM_SIZE))
>                 return 0;
> diff --git a/include/u-boot/md5.h b/include/u-boot/md5.h
> index 3cfd33a8e56..3cb87328175 100644
> --- a/include/u-boot/md5.h
> +++ b/include/u-boot/md5.h
> @@ -12,6 +12,7 @@
>  #include "compiler.h"
>
>  #define MD5_SUM_LEN    16
> +#define MD5_DEF_CHUNK_SZ 0x10000
>
>  #if defined(CONFIG_MBEDTLS_LIB_CRYPTO)
>  typedef mbedtls_md5_context MD5Context;
> @@ -30,12 +31,6 @@ void MD5Init(MD5Context *ctx);
>  void MD5Update(MD5Context *ctx, unsigned char const *buf, unsigned int len);
>  void MD5Final(unsigned char digest[16], MD5Context *ctx);
>
> -/*
> - * Calculate and store in 'output' the MD5 digest of 'len' bytes at
> - * 'input'. 'output' must have enough space to hold 16 bytes.
> - */
> -void md5 (unsigned char *input, int len, unsigned char output[16]);
> -
>  /*
>   * Calculate and store in 'output' the MD5 digest of 'len' bytes at 'input'.
>   * 'output' must have enough space to hold 16 bytes. If 'chunk' Trigger the
> diff --git a/lib/md5.c b/lib/md5.c
> index 34343cf8e23..2d8977b2e85 100644
> --- a/lib/md5.c
> +++ b/lib/md5.c
> @@ -262,21 +262,6 @@ MD5Transform(__u32 buf[4], __u32 const in[16])
>         buf[3] += d;
>  }
>
> -/*
> - * Calculate and store in 'output' the MD5 digest of 'len' bytes at
> - * 'input'. 'output' must have enough space to hold 16 bytes.
> - */
> -void
> -md5 (unsigned char *input, int len, unsigned char output[16])
> -{
> -       MD5Context context;
> -
> -       MD5Init(&context);
> -       MD5Update(&context, input, len);
> -       MD5Final(output, &context);
> -}
> -
> -
>  /*
>   * Calculate and store in 'output' the MD5 digest of 'len' bytes at 'input'.
>   * 'output' must have enough space to hold 16 bytes. If 'chunk' Trigger the
> --
> 2.25.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Michal Simek May 31, 2024, 6:46 a.m. UTC | #2
On 5/28/24 16:09, Raymond Mao wrote:
> We don't need an API specially for non-watchdog since md5_wd supports
> it by enabling CONFIG_HW_WATCHDOG or CONFIG_WATCHDOG.
> Set 0x10000 as default chunk size for MD5.
> 
> Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
> ---
> Changes in v3
> - Initial patch.
> 
>   board/friendlyarm/nanopi2/board.c |  3 ++-
>   board/intel/edison/edison.c       |  3 ++-
>   board/xilinx/zynq/bootimg.c       |  2 +-
>   include/u-boot/md5.h              |  7 +------
>   lib/md5.c                         | 15 ---------------
>   5 files changed, 6 insertions(+), 24 deletions(-)
> 
> diff --git a/board/friendlyarm/nanopi2/board.c b/board/friendlyarm/nanopi2/board.c
> index 393c5a447d6..f203499f544 100644
> --- a/board/friendlyarm/nanopi2/board.c
> +++ b/board/friendlyarm/nanopi2/board.c
> @@ -264,7 +264,8 @@ static void make_ether_addr(u8 *addr)
>   	hash[6] = readl(PHY_BASEADDR_ECID + 0x08);
>   	hash[7] = readl(PHY_BASEADDR_ECID + 0x0c);
>   
> -	md5((unsigned char *)&hash[4], 64, (unsigned char *)hash);
> +	md5_wd((unsigned char *)&hash[4], 64, (unsigned char *)hash,
> +	       MD5_DEF_CHUNK_SZ);
>   
>   	hash[0] ^= hash[2];
>   	hash[1] ^= hash[3];
> diff --git a/board/intel/edison/edison.c b/board/intel/edison/edison.c
> index 11e7f74e47c..1583d11c74d 100644
> --- a/board/intel/edison/edison.c
> +++ b/board/intel/edison/edison.c
> @@ -33,7 +33,8 @@ static void assign_serial(void)
>   	if (!mmc)
>   		return;
>   
> -	md5((unsigned char *)mmc->cid, sizeof(mmc->cid), ssn);
> +	md5_wd((unsigned char *)mmc->cid, sizeof(mmc->cid), ssn,
> +	       MD5_DEF_CHUNK_SZ);
>   
>   	snprintf(usb0addr, sizeof(usb0addr), "02:00:86:%02x:%02x:%02x",
>   		 ssn[13], ssn[14], ssn[15]);
> diff --git a/board/xilinx/zynq/bootimg.c b/board/xilinx/zynq/bootimg.c
> index 2f55078dd76..4b2245c0618 100644
> --- a/board/xilinx/zynq/bootimg.c
> +++ b/board/xilinx/zynq/bootimg.c
> @@ -136,7 +136,7 @@ int zynq_validate_partition(u32 start_addr, u32 len, u32 chksum_off)
>   
>   	memcpy(&checksum[0], (u32 *)chksum_off, MD5_CHECKSUM_SIZE);
>   
> -	md5_wd((u8 *)start_addr, len, &calchecksum[0], 0x10000);
> +	md5_wd((u8 *)start_addr, len, &calchecksum[0], MD5_DEF_CHUNK_SZ);
>   
>   	if (!memcmp(checksum, calchecksum, MD5_CHECKSUM_SIZE))
>   		return 0;

Reviewed-by: Michal Simek <michal.simek@amd.com> # zynq

M
diff mbox series

Patch

diff --git a/board/friendlyarm/nanopi2/board.c b/board/friendlyarm/nanopi2/board.c
index 393c5a447d6..f203499f544 100644
--- a/board/friendlyarm/nanopi2/board.c
+++ b/board/friendlyarm/nanopi2/board.c
@@ -264,7 +264,8 @@  static void make_ether_addr(u8 *addr)
 	hash[6] = readl(PHY_BASEADDR_ECID + 0x08);
 	hash[7] = readl(PHY_BASEADDR_ECID + 0x0c);
 
-	md5((unsigned char *)&hash[4], 64, (unsigned char *)hash);
+	md5_wd((unsigned char *)&hash[4], 64, (unsigned char *)hash,
+	       MD5_DEF_CHUNK_SZ);
 
 	hash[0] ^= hash[2];
 	hash[1] ^= hash[3];
diff --git a/board/intel/edison/edison.c b/board/intel/edison/edison.c
index 11e7f74e47c..1583d11c74d 100644
--- a/board/intel/edison/edison.c
+++ b/board/intel/edison/edison.c
@@ -33,7 +33,8 @@  static void assign_serial(void)
 	if (!mmc)
 		return;
 
-	md5((unsigned char *)mmc->cid, sizeof(mmc->cid), ssn);
+	md5_wd((unsigned char *)mmc->cid, sizeof(mmc->cid), ssn,
+	       MD5_DEF_CHUNK_SZ);
 
 	snprintf(usb0addr, sizeof(usb0addr), "02:00:86:%02x:%02x:%02x",
 		 ssn[13], ssn[14], ssn[15]);
diff --git a/board/xilinx/zynq/bootimg.c b/board/xilinx/zynq/bootimg.c
index 2f55078dd76..4b2245c0618 100644
--- a/board/xilinx/zynq/bootimg.c
+++ b/board/xilinx/zynq/bootimg.c
@@ -136,7 +136,7 @@  int zynq_validate_partition(u32 start_addr, u32 len, u32 chksum_off)
 
 	memcpy(&checksum[0], (u32 *)chksum_off, MD5_CHECKSUM_SIZE);
 
-	md5_wd((u8 *)start_addr, len, &calchecksum[0], 0x10000);
+	md5_wd((u8 *)start_addr, len, &calchecksum[0], MD5_DEF_CHUNK_SZ);
 
 	if (!memcmp(checksum, calchecksum, MD5_CHECKSUM_SIZE))
 		return 0;
diff --git a/include/u-boot/md5.h b/include/u-boot/md5.h
index 3cfd33a8e56..3cb87328175 100644
--- a/include/u-boot/md5.h
+++ b/include/u-boot/md5.h
@@ -12,6 +12,7 @@ 
 #include "compiler.h"
 
 #define MD5_SUM_LEN	16
+#define MD5_DEF_CHUNK_SZ 0x10000
 
 #if defined(CONFIG_MBEDTLS_LIB_CRYPTO)
 typedef mbedtls_md5_context MD5Context;
@@ -30,12 +31,6 @@  void MD5Init(MD5Context *ctx);
 void MD5Update(MD5Context *ctx, unsigned char const *buf, unsigned int len);
 void MD5Final(unsigned char digest[16], MD5Context *ctx);
 
-/*
- * Calculate and store in 'output' the MD5 digest of 'len' bytes at
- * 'input'. 'output' must have enough space to hold 16 bytes.
- */
-void md5 (unsigned char *input, int len, unsigned char output[16]);
-
 /*
  * Calculate and store in 'output' the MD5 digest of 'len' bytes at 'input'.
  * 'output' must have enough space to hold 16 bytes. If 'chunk' Trigger the
diff --git a/lib/md5.c b/lib/md5.c
index 34343cf8e23..2d8977b2e85 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -262,21 +262,6 @@  MD5Transform(__u32 buf[4], __u32 const in[16])
 	buf[3] += d;
 }
 
-/*
- * Calculate and store in 'output' the MD5 digest of 'len' bytes at
- * 'input'. 'output' must have enough space to hold 16 bytes.
- */
-void
-md5 (unsigned char *input, int len, unsigned char output[16])
-{
-	MD5Context context;
-
-	MD5Init(&context);
-	MD5Update(&context, input, len);
-	MD5Final(output, &context);
-}
-
-
 /*
  * Calculate and store in 'output' the MD5 digest of 'len' bytes at 'input'.
  * 'output' must have enough space to hold 16 bytes. If 'chunk' Trigger the