Remove setkey() callback handler for normal/non key
hash algorithms and keep it for AES-CBC/CMAC which needs key.

Signed-off-by: Raveendra Padasalagi <raveendra.padasal...@broadcom.com>
---
 drivers/crypto/bcm/cipher.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/bcm/cipher.c b/drivers/crypto/bcm/cipher.c
index 2d1f1db..4d67e22 100644
--- a/drivers/crypto/bcm/cipher.c
+++ b/drivers/crypto/bcm/cipher.c
@@ -4652,12 +4652,16 @@ static int spu_register_ahash(struct iproc_alg_s 
*driver_alg)
        hash->halg.statesize = sizeof(struct spu_hash_export_s);
 
        if (driver_alg->auth_info.mode != HASH_MODE_HMAC) {
-               hash->setkey = ahash_setkey;
                hash->init = ahash_init;
                hash->update = ahash_update;
                hash->final = ahash_final;
                hash->finup = ahash_finup;
                hash->digest = ahash_digest;
+               if ((driver_alg->auth_info.alg == HASH_ALG_AES) &&
+                   ((driver_alg->auth_info.mode == HASH_MODE_XCBC) ||
+                   (driver_alg->auth_info.mode == HASH_MODE_CMAC))) {
+                       hash->setkey = ahash_setkey;
+               }
        } else {
                hash->setkey = ahash_hmac_setkey;
                hash->init = ahash_hmac_init;
-- 
1.9.1

Reply via email to