Message ID | 20230510075142.1638-1-yangmengfei1394@phytium.com.cn |
---|---|
State | New |
Headers | show |
Series | Crypto: Fix one bug when use kernel ecdsa algorithm | expand |
yangmengfei1394@phytium.com.cn wrote: > > 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 Instead of doing this, we should move the code that sets the default functions from crypto_register_akcipher into akcipher_prepare_alg. Thanks,
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