RE: [PATCH V2 3/4] crypto: xilinx: Add ZynqMP RSA driver

From: Harsha, Harsha
Date: Mon Apr 03 2023 - 05:48:29 EST


Hi Herbert,


> -----Original Message-----
> From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> Sent: Friday, March 31, 2023 2:33 PM
> To: Harsha, Harsha <harsha.harsha@xxxxxxx>
> Cc: davem@xxxxxxxxxxxxx; linux-crypto@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> michals@xxxxxxxxxx; saratcha@xxxxxxxxxx; git (AMD-Xilinx) <git@xxxxxxx>;
> Shah, Dhaval (CPG-PSAV) <dhaval.r.shah@xxxxxxx>
> Subject: Re: [PATCH V2 3/4] crypto: xilinx: Add ZynqMP RSA driver
>
> On Tue, Mar 21, 2023 at 11:04:45AM +0530, Harsha Harsha wrote:
> >
> > +static inline int xilinx_copy_and_save_keypart(u8 **kpbuf, unsigned int
> *kplen,
> > + const u8 *buf, size_t sz) {
> > + int nskip;
> > +
> > + for (nskip = 0; nskip < sz; nskip++)
> > + if (buf[nskip])
> > + break;
> > +
> > + *kplen = sz - nskip;
> > + *kpbuf = kmemdup(buf + nskip, *kplen, GFP_KERNEL);
> > + if (!*kpbuf)
> > + return -ENOMEM;
> > +
> > + return 0;
> > +}
>
> ...
>
> > +static int xilinx_rsa_setkey(struct crypto_akcipher *tfm, const void *key,
> > + unsigned int keylen, bool private) {
> > + struct xilinx_rsa_tfm_ctx *tctx = akcipher_tfm_ctx(tfm);
> > + struct rsa_key raw_key;
> > + int ret;
> > +
> > + if (private)
> > + ret = rsa_parse_priv_key(&raw_key, key, keylen);
> > + else
> > + ret = rsa_parse_pub_key(&raw_key, key, keylen);
> > + if (ret)
> > + goto n_key;
> > +
> > + ret = xilinx_copy_and_save_keypart(&tctx->n_buf, &tctx->n_len,
> > + raw_key.n, raw_key.n_sz);
>
> What happens when you call setkey twice? Wouldn't this leak memory?

Thanks for the review. I will check the behavior and get back to you.

Regards,
Harsha

>
> Cheers,
> --
> Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page:
> http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt