Messages in this thread Patch in this message | | | From | yangmengfei1394@phytium ... | Subject | [PATCH] Crypto: Fix one bug when use kernel ecdsa algorithm | Date | Wed, 10 May 2023 15:51:42 +0800 |
| |
From: ymf <yangmengfei1394@phytium.com.cn>
We are trying to use kernel ecdsa algorithm to sign something. When we call the crypto_akcipher_set_priv_key function, the system collapses because it comes to NULL pointer.We find out kerenl ecdsa algorithm has not offered the set_priv_key function. So we think it might be necessary to check whether set_priv_key is available when crypto_akcipher_set_priv_key is called.
Signed-off-by: ymf <yangmengfei1394@phytium.com.cn> --- include/crypto/akcipher.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/crypto/akcipher.h b/include/crypto/akcipher.h index f35fd653e4e5..a68f0e23bf89 100644 --- a/include/crypto/akcipher.h +++ b/include/crypto/akcipher.h @@ -459,7 +459,9 @@ static inline int crypto_akcipher_set_priv_key(struct crypto_akcipher *tfm, unsigned int keylen) { struct akcipher_alg *alg = crypto_akcipher_alg(tfm); - - return alg->set_priv_key(tfm, key, keylen); + if (likely(alg->set_priv_key != NULL)) + return alg->set_priv_key(tfm, key, keylen); + else + return -EPERM; } #endif -- 2.34.1
| |