Re: [PATCH v11 2/4] crypto: spacc - Add SPAcc ahash support

From: Pavitrakumar Managutte

Date: Thu Apr 02 2026 - 04:06:15 EST


Hi Herbert,
As per your inputs, I've replaced the do_shash switch to use
lib/crypto single-shot calls for SHA-1, SHA-224, SHA-256, SHA-384,
SHA-512, and MD5.

However, SM3 does not have a single-shot library API in lib/crypto yet
— include/crypto/sm3.h exposes sm3_init() and sm3_block_generic(),
with no sm3()/sm3_update()/sm3_final() equivalents.

For now, I've retained do_shash only for the SM3 case. Would this be
acceptable, or would you prefer a different approach?


Code snippet below for your reference
============== snip start ================

switch (salg->mode->id) {
case CRYPTO_MODE_HMAC_SHA224:
sha224(key, keylen, tctx->ipad);
break;

case CRYPTO_MODE_HMAC_SHA256:
sha256(key, keylen, tctx->ipad);
break;

case CRYPTO_MODE_HMAC_SHA384:
sha384(key, keylen, tctx->ipad);
break;

case CRYPTO_MODE_HMAC_SHA512:
sha512(key, keylen, tctx->ipad);
break;

case CRYPTO_MODE_HMAC_MD5:
md5(key, keylen, tctx->ipad);
break;

case CRYPTO_MODE_HMAC_SHA1:
sha1(key, keylen, tctx->ipad);
break;

case CRYPTO_MODE_HMAC_SM3:
rc = do_shash(salg->dev, "sm3", tctx->ipad, key,
keylen);
if (rc < 0) {
dev_err(salg->dev,
"ERR: %d computing shash for sm3\n", rc);
return -EIO;
}
break;

default:
return -EINVAL;
}

============== snip end ================

Warm Regards,
PK



On Fri, Mar 27, 2026 at 2:50 PM Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Wed, Mar 18, 2026 at 12:48:06PM +0530, Pavitrakumar Managutte wrote:
> >
> > + switch (salg->mode->id) {
> > + case CRYPTO_MODE_HMAC_SHA224:
> > + rc = do_shash(salg->dev, "sha224", tctx->ipad, key,
> > + keylen);
> > + break;
>
> Since you're doing a giant switch statement anyway, please convert
> this to use lib/crypto instead of shash.
>
> Thanks,
> --
> Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt