From: Vitaly Chikunov <vt@altlinux.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: Thorsten Blum <thorsten.blum@linux.dev>,
Ignat Korchagin <ignat@linux.win>,
Herbert Xu <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] crypto: ecrdsa - fix unknown OID check in ecrdsa_param_curve
Date: Sun, 3 May 2026 14:38:18 +0300 [thread overview]
Message-ID: <afcyXvjpYxwz4AjS@altlinux.org> (raw)
In-Reply-To: <afZZrCNmn3Bfwauf@wunner.de>
Lukas,
On Sat, May 02, 2026 at 10:08:12PM +0200, Lukas Wunner wrote:
> On Sat, May 02, 2026 at 09:09:04PM +0200, Thorsten Blum wrote:
> > The ->curve_oid check in ecrdsa_param_curve() rejects the valid enum
> > value 0 (OID_id_dsa_with_sha1), but look_up_OID() returns OID__NR on
> > lookup failure. Compare ->curve_oid with OID__NR instead to ensure that
> > only unknown OIDs return -EINVAL.
> >
> > Fixes: 0d7a78643f69 ("crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm")
> > Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
>
> Reviewed-by: Lukas Wunner <lukas@wunner.de>
>
> > +++ b/crypto/ecrdsa.c
> > @@ -145,7 +145,7 @@ int ecrdsa_param_curve(void *context, size_t hdrlen, unsigned char tag,
> > struct ecrdsa_ctx *ctx = context;
> >
> > ctx->curve_oid = look_up_OID(value, vlen);
> > - if (!ctx->curve_oid)
> > + if (ctx->curve_oid == OID__NR)
> > return -EINVAL;
> > ctx->curve = get_curve_by_oid(ctx->curve_oid);
> > return 0;
>
> This is a fairly harmless logic bug: OID_id_dsa_with_sha1 is not
> a valid curve and so get_curve_by_oid() returns NULL, which is
> assigned to ctx->curve.
>
> The function you're changing, ecrdsa_param_curve(), is called
> from the ecrdsa_params ASN.1 parser, which is invoked from
> ecrdsa_set_pub_key(). That function does perform a NULL pointer
> check for ctx->curve right after the ASN.1 parser returns.
>
> Your patch will change the return value for an unknown OID from
> -ENOPKG to -EINVAL, but that probably doesn't matter much.
Great review, thanks. Basically, the check is redundant.
Reviewed-by: Vitaly Chikunov <vt@altlinux.org>
Thanks,
>
> Thanks,
>
> Lukas
next prev parent reply other threads:[~2026-05-03 11:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-02 19:09 [PATCH] crypto: ecrdsa - fix unknown OID check in ecrdsa_param_curve Thorsten Blum
2026-05-02 20:08 ` Lukas Wunner
2026-05-03 11:38 ` Vitaly Chikunov [this message]
2026-05-05 9:34 ` Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=afcyXvjpYxwz4AjS@altlinux.org \
--to=vt@altlinux.org \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=ignat@linux.win \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=thorsten.blum@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.