[PATCH] lib/rsa: avoid -Wdiscarded-qualifiers

Simon Glass sjg at chromium.org
Mon Jan 10 17:48:16 CET 2022


Hi,

On Mon, 10 Jan 2022 at 08:00, Alex G. <mr.nuke.me at gmail.com> wrote:
>
>
>
> On 1/9/22 8:39 AM, Heinrich Schuchardt wrote:
> > The return type of EVP_PKEY_get0_RSA() is const struct rsa_st *.
> > Our code drops the const qualifier leading to
> >
> > In file included from tools/lib/rsa/rsa-sign.c:1:
> > ./tools/../lib/rsa/rsa-sign.c: In function ‘rsa_add_verify_data’:
> > ./tools/../lib/rsa/rsa-sign.c:631:13: warning:
> > assignment discards ‘const’ qualifier from pointer target type
> > [-Wdiscarded-qualifiers]
> >    631 |         rsa = EVP_PKEY_get0_RSA(pkey);
> >        |             ^
> >
> > Add a type conversion.
> >
> > Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> > ---
> >   lib/rsa/rsa-sign.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/lib/rsa/rsa-sign.c b/lib/rsa/rsa-sign.c
> > index 44f21416ce..3b6e5f0f86 100644
> > --- a/lib/rsa/rsa-sign.c
> > +++ b/lib/rsa/rsa-sign.c
> > @@ -628,7 +628,7 @@ int rsa_add_verify_data(struct image_sign_info *info, void *keydest)
> >       if (ret)
> >               goto err_get_pub_key;
> >
> > -     rsa = EVP_PKEY_get0_RSA(pkey);
> > +     rsa = (RSA *)EVP_PKEY_get0_RSA(pkey);
>
> I think it's the wrong path to discard const qualifiers, whether
> unwillingly or by type punning. I suggest making 'rsa' a "const RSA *"
> and fixing the downstream users to do the same.

It looks like just a case of changing some function signatures in that
file. Heinrich, what do you think?

Regards,
SImon



>
> Alex
>
> >       ret = rsa_get_params(rsa, &exponent, &n0_inv, &modulus, &r_squared);
> >       if (ret)
> >               goto err_get_params;
> >


More information about the U-Boot mailing list