Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: bcm - fix normal/non key hash algorithm failure

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

Fixes: 9d12ba86f818 ("crypto: brcm - Add Broadcom SPU driver")
Signed-off-by: Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Raveendra Padasalagi and committed by
Herbert Xu
4f0129d1 ecd6d5c9

+5 -1
+5 -1
drivers/crypto/bcm/cipher.c
··· 4652 4652 hash->halg.statesize = sizeof(struct spu_hash_export_s); 4653 4653 4654 4654 if (driver_alg->auth_info.mode != HASH_MODE_HMAC) { 4655 - hash->setkey = ahash_setkey; 4656 4655 hash->init = ahash_init; 4657 4656 hash->update = ahash_update; 4658 4657 hash->final = ahash_final; 4659 4658 hash->finup = ahash_finup; 4660 4659 hash->digest = ahash_digest; 4660 + if ((driver_alg->auth_info.alg == HASH_ALG_AES) && 4661 + ((driver_alg->auth_info.mode == HASH_MODE_XCBC) || 4662 + (driver_alg->auth_info.mode == HASH_MODE_CMAC))) { 4663 + hash->setkey = ahash_setkey; 4664 + } 4661 4665 } else { 4662 4666 hash->setkey = ahash_hmac_setkey; 4663 4667 hash->init = ahash_hmac_init;