[PATCH v3 06/10] crypte: ecc - Implement ecc_curve_get_nbits to get number of bits

Stefan Berger posted 10 patches 1 year, 11 months ago
There is a newer version of this series
[PATCH v3 06/10] crypte: ecc - Implement ecc_curve_get_nbits to get number of bits
Posted by Stefan Berger 1 year, 11 months ago
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(+)

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
  *
-- 
2.43.0
Re: [PATCH v3 06/10] crypte: ecc - Implement ecc_curve_get_nbits to get number of bits
Posted by Lukas Wunner 1 year, 11 months ago
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
Re: [PATCH v3 06/10] crypte: ecc - Implement ecc_curve_get_nbits to get number of bits
Posted by Stefan Berger 1 year, 11 months ago

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