crypto: sun8i-ss - use crypto_shash_tfm_digest() in sun8i_ss_hashkey()
PATCH 1/1 crypto: sun8i-ss - use crypto_shash_tfm_digest() in sun8i_ss_hashkey()
From: Eric Biggers <[email protected]>
Simplify sun8i_ss_hashkey() by using crypto_shash_tfm_digest() instead of an alloc+init+update+final sequence. This should also improve performance.
Signed-off-by Eric Biggers <[email protected]>
--- .../crypto/allwinner/sun8i-ss/sun8i-ss-hash.c | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-)
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c +4 -21
@@ -23,47 +23,30 @@#include <linux/pm_runtime.h> #include <linux/scatterlist.h> #include <linux/slab.h> #include <linux/string.h> #include "sun8i-ss.h" static int sun8i_ss_hashkey (struct sun8i_ss_hash_tfm_ctx *tfmctx,const u8 *key,unsigned int keylen) {struct crypto_shash *xtfm; -struct shash_desc *sdesc; -size_t len; -int ret =0 ; +int ret; xtfm =crypto_alloc_shash ("sha1" ,0 ,CRYPTO_ALG_NEED_FALLBACK );if (IS_ERR (xtfm))return PTR_ERR (xtfm); - len =sizeof (*sdesc) +crypto_shash_descsize (xtfm); - sdesc =kmalloc (len,GFP_KERNEL ); -if (!sdesc) { - ret = -ENOMEM ; - goto err_hashkey_sdesc; - } - sdesc->tfm = xtfm; - - ret =crypto_shash_init (sdesc); -if (ret) { -dev_err (tfmctx->ss->dev,"shash init error ret=%d\n" , ret); - goto err_hashkey; - } - ret =crypto_shash_finup (sdesc, key, keylen, tfmctx->key); + ret =crypto_shash_tfm_digest (xtfm, key, keylen, tfmctx->key);if (ret) -dev_err (tfmctx->ss->dev,"shash finup error\n" ); -err_hashkey: -kfree (sdesc); -err_hashkey_sdesc: +dev_err (tfmctx->ss->dev,"shash digest error ret=%d\n" , ret); +crypto_free_shash (xtfm);return ret; }int sun8i_ss_hmac_setkey (struct crypto_ahash *ahash,const u8 *key,unsigned int keylen) {struct sun8i_ss_hash_tfm_ctx *tfmctx =crypto_ahash_ctx (ahash);int digestsize, i;int bs =crypto_ahash_blocksize (ahash);
base-commit: 2af9b20dbb39f6ebf9b9b6c090271594627d818e
Signature · 1 line
2.42.0
Herbert Xu
maintainerQuoted 10 lines · Eric Biggers
From: Eric Biggers <[email protected]>
Simplify
sun8i_ss_hashkey()by usingcrypto_shash_tfm_digest()instead of an alloc+init+update+final sequence. This should also improve performance.Signed-off-by Eric Biggers <[email protected]>---
.../crypto/allwinner/sun8i-ss/sun8i-ss-hash.c| 25 +++----------------1 file changed, 4 insertions(+), 21 deletions(-)
Patch applied. Thanks.
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt