[openwrt/openwrt] ltq-deu: update initialisations for hmac algorithms

LEDE Commits lede-commits at lists.infradead.org
Wed Jan 5 17:10:30 PST 2022


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/006fee0dadd184aab8a1a18d629674f8f06e9eda

commit 006fee0dadd184aab8a1a18d629674f8f06e9eda
Author: Daniel Kestrel <kestrel1974 at t-online.de>
AuthorDate: Sun Jun 20 21:33:22 2021 +0200

    ltq-deu: update initialisations for hmac algorithms
    
    The processing in the hmac algorithms depends on the status fields:
    count, dbn and started. Not all were initialised in the init method
    and after finishing the final method. Added missing fields to init
    method and call init method after finishing final.
    The memsets have the wrong size in the original driver and did not
    clear everything and are not necessary. Since no memset is done in
    the kernels generic implementation, memsets were removed.
    
    Signed-off-by: Daniel Kestrel <kestrel1974 at t-online.de>
---
 package/kernel/lantiq/ltq-deu/src/ifxmips_md5_hmac.c  | 6 ++----
 package/kernel/lantiq/ltq-deu/src/ifxmips_sha1_hmac.c | 4 ++--
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/package/kernel/lantiq/ltq-deu/src/ifxmips_md5_hmac.c b/package/kernel/lantiq/ltq-deu/src/ifxmips_md5_hmac.c
index fc3a5ea668..109d27cbfb 100644
--- a/package/kernel/lantiq/ltq-deu/src/ifxmips_md5_hmac.c
+++ b/package/kernel/lantiq/ltq-deu/src/ifxmips_md5_hmac.c
@@ -185,6 +185,7 @@ static int md5_hmac_init(struct shash_desc *desc)
 
     mctx->dbn = 0; //dbn workaround
     mctx->started = 0;
+    mctx->byte_count = 0;
 
     return 0;
 }
@@ -338,10 +339,7 @@ static int md5_hmac_final_impl(struct shash_desc *desc, u8 *out, bool hash_final
 
     if (hash_final) {
         /* reset the context after we finish with the hash */
-        mctx->byte_count = 0;
-        memset(&mctx->hash[0], 0, sizeof(MD5_HASH_WORDS));
-        memset(&mctx->block[0], 0, sizeof(MD5_BLOCK_WORDS));
-        memset(&mctx->temp[0], 0, MD5_HMAC_DBN_TEMP_SIZE);
+        md5_hmac_init(desc);
     } else {
         mctx->dbn = 0;
     }
diff --git a/package/kernel/lantiq/ltq-deu/src/ifxmips_sha1_hmac.c b/package/kernel/lantiq/ltq-deu/src/ifxmips_sha1_hmac.c
index 9adf4d4710..69504efe93 100644
--- a/package/kernel/lantiq/ltq-deu/src/ifxmips_sha1_hmac.c
+++ b/package/kernel/lantiq/ltq-deu/src/ifxmips_sha1_hmac.c
@@ -189,6 +189,7 @@ static int sha1_hmac_init(struct shash_desc *desc)
     //printk("debug ln: %d, fn: %s\n", __LINE__, __func__);
     sctx->dbn = 0; //dbn workaround
     sctx->started = 0;
+    sctx->count = 0;
 
     return 0;
 }
@@ -351,8 +352,7 @@ static int sha1_hmac_final_impl(struct shash_desc *desc, u8 *out, bool hash_fina
     CRTCL_SECT_HASH_END;
 
     if (hash_final) {
-        memset(&sctx->buffer[0], 0, SHA1_HMAC_BLOCK_SIZE);
-        sctx->count = 0;
+        sha1_hmac_init(desc);
     } else {
         sctx->dbn = 0;
     }



More information about the lede-commits mailing list