Message ID | 20240223204149.4055630-7-stefanb@linux.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Herbert Xu |
Headers | show |
Series | Add support for NIST P521 to ecdsa | expand |
On Fri, Feb 23, 2024 at 03:41:45PM -0500, Stefan Berger wrote: > --- a/include/crypto/internal/ecc.h > +++ b/include/crypto/internal/ecc.h > @@ -75,6 +75,17 @@ static inline void ecc_digits_from_bytes(const u8 *in, unsigned int nbytes, > ecc_swap_digits(tmp, out, ndigits); > } > > +/** > + * ecc_curve_get_nbits() - Get the number of bits of the curve > + * @curve: The curve > + */ > +static inline unsigned int ecc_curve_get_nbits(const struct ecc_curve *curve) > +{ > + if (curve->nbits) > + return curve->nbits; > + return curve->g.ndigits << ECC_DIGITS_TO_BYTES_SHIFT * 8; > +} Since you're amending struct ecc_curve with an extra nbits value anyway, why not statically fill it in for all curves, instead of adding this extra complexity in the code? Thanks, Lukas
On 2/27/24 15:15, Lukas Wunner wrote: > On Fri, Feb 23, 2024 at 03:41:45PM -0500, Stefan Berger wrote: >> --- a/include/crypto/internal/ecc.h >> +++ b/include/crypto/internal/ecc.h >> @@ -75,6 +75,17 @@ static inline void ecc_digits_from_bytes(const u8 *in, unsigned int nbytes, >> ecc_swap_digits(tmp, out, ndigits); >> } >> >> +/** >> + * ecc_curve_get_nbits() - Get the number of bits of the curve >> + * @curve: The curve >> + */ >> +static inline unsigned int ecc_curve_get_nbits(const struct ecc_curve *curve) >> +{ >> + if (curve->nbits) >> + return curve->nbits; >> + return curve->g.ndigits << ECC_DIGITS_TO_BYTES_SHIFT * 8; >> +} > > Since you're amending struct ecc_curve with an extra nbits value anyway, > why not statically fill it in for all curves, instead of adding this > extra complexity in the code? I filled in all curves now, including ecrdsa cruves and curve25519. Stefan > > Thanks, > > Lukas
diff --git a/include/crypto/internal/ecc.h b/include/crypto/internal/ecc.h index b8ca5023b3b5..2d321b47d0f7 100644 --- a/include/crypto/internal/ecc.h +++ b/include/crypto/internal/ecc.h @@ -75,6 +75,17 @@ static inline void ecc_digits_from_bytes(const u8 *in, unsigned int nbytes, ecc_swap_digits(tmp, out, ndigits); } +/** + * ecc_curve_get_nbits() - Get the number of bits of the curve + * @curve: The curve + */ +static inline unsigned int ecc_curve_get_nbits(const struct ecc_curve *curve) +{ + if (curve->nbits) + return curve->nbits; + return curve->g.ndigits << ECC_DIGITS_TO_BYTES_SHIFT * 8; +} + /** * ecc_is_key_valid() - Validate a given ECDH private key *
If curve->nbits is set then return this number, otherwise use the curve->ndigits to calculate the number of bits. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> --- include/crypto/internal/ecc.h | 11 +++++++++++ 1 file changed, 11 insertions(+)