[PATCH 3/4] md5: Use typedef for MD5 context

Ilias Apalodimas ilias.apalodimas at linaro.org
Thu May 9 18:17:18 CEST 2024


On Thu, 9 May 2024 at 17:38, Raymond Mao <raymond.mao at linaro.org> wrote:
>
> Use of typedef is beneficial for porting with other crypto libs
> without changing the API callers.
> Secondly, it is for the code consistency with other digest libs.
> SHA1, SHA256 and SHA512 are all using typedef for their context.
>
> Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
> ---
>  drivers/crypto/hash/hash_sw.c |  8 ++++----
>  include/u-boot/md5.h          | 10 +++++-----
>  lib/md5.c                     | 10 +++++-----
>  3 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/crypto/hash/hash_sw.c b/drivers/crypto/hash/hash_sw.c
> index d8065d68ea4..a5033677930 100644
> --- a/drivers/crypto/hash/hash_sw.c
> +++ b/drivers/crypto/hash/hash_sw.c
> @@ -51,17 +51,17 @@ static void hash_finish_crc32(void *ctx, void *obuf)
>  /* MD5 */
>  static void hash_init_md5(void *ctx)
>  {
> -       MD5Init((struct MD5Context *)ctx);
> +       MD5Init((MD5Context *)ctx);
>  }
>
>  static void hash_update_md5(void *ctx, const void *ibuf, uint32_t ilen)
>  {
> -       MD5Update((struct MD5Context *)ctx, ibuf, ilen);
> +       MD5Update((MD5Context *)ctx, ibuf, ilen);
>  }
>
>  static void hash_finish_md5(void *ctx, void *obuf)
>  {
> -       MD5Final(obuf, (struct MD5Context *)ctx);
> +       MD5Final(obuf, (MD5Context *)ctx);
>  }
>
>  /* SHA1 */
> @@ -159,7 +159,7 @@ static struct sw_hash_impl sw_hash_impl[HASH_ALGO_NUM] = {
>                 .init = hash_init_md5,
>                 .update = hash_update_md5,
>                 .finish = hash_finish_md5,
> -               .ctx_alloc_sz = sizeof(struct MD5Context),
> +               .ctx_alloc_sz = sizeof(MD5Context),
>         },
>
>         [HASH_ALGO_SHA1] = {
> diff --git a/include/u-boot/md5.h b/include/u-boot/md5.h
> index d61364c0ae3..c465925ea8d 100644
> --- a/include/u-boot/md5.h
> +++ b/include/u-boot/md5.h
> @@ -10,18 +10,18 @@
>
>  #define MD5_SUM_LEN    16
>
> -struct MD5Context {
> +typedef struct MD5Context {
>         __u32 buf[4];
>         __u32 bits[2];
>         union {
>                 unsigned char in[64];
>                 __u32 in32[16];
>         };
> -};
> +} MD5Context;
>
> -void MD5Init(struct MD5Context *ctx);
> -void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len);
> -void MD5Final(unsigned char digest[16], struct MD5Context *ctx);
> +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
> diff --git a/lib/md5.c b/lib/md5.c
> index faf3f78ab1e..34343cf8e23 100644
> --- a/lib/md5.c
> +++ b/lib/md5.c
> @@ -55,7 +55,7 @@ byteReverse(unsigned char *buf, unsigned longs)
>   * initialization constants.
>   */
>  void
> -MD5Init(struct MD5Context *ctx)
> +MD5Init(MD5Context *ctx)
>  {
>         ctx->buf[0] = 0x67452301;
>         ctx->buf[1] = 0xefcdab89;
> @@ -71,7 +71,7 @@ MD5Init(struct MD5Context *ctx)
>   * of bytes.
>   */
>  void
> -MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)
> +MD5Update(MD5Context *ctx, unsigned char const *buf, unsigned int len)
>  {
>         register __u32 t;
>
> @@ -120,7 +120,7 @@ MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)
>   * 1 0* (64-bit count of bits processed, MSB-first)
>   */
>  void
> -MD5Final(unsigned char digest[16], struct MD5Context *ctx)
> +MD5Final(unsigned char digest[16], MD5Context *ctx)
>  {
>         unsigned int count;
>         unsigned char *p;
> @@ -269,7 +269,7 @@ MD5Transform(__u32 buf[4], __u32 const in[16])
>  void
>  md5 (unsigned char *input, int len, unsigned char output[16])
>  {
> -       struct MD5Context context;
> +       MD5Context context;
>
>         MD5Init(&context);
>         MD5Update(&context, input, len);
> @@ -286,7 +286,7 @@ void
>  md5_wd(const unsigned char *input, unsigned int len, unsigned char output[16],
>         unsigned int chunk_sz)
>  {
> -       struct MD5Context context;
> +       MD5Context context;
>  #if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
>         const unsigned char *end, *curr;
>         int chunk;
> --
> 2.25.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>


More information about the U-Boot mailing list