mbox series

[0/2] ecdsa: Use ecc_digits_from_bytes to simplify code

Message ID 20240529230827.379111-1-stefanb@linux.ibm.com (mailing list archive)
Headers show
Series ecdsa: Use ecc_digits_from_bytes to simplify code | expand

Message

Stefan Berger May 29, 2024, 11:08 p.m. UTC
Simplify two functions that were using temporary byte arrays for
converting too-short input byte arrays to digits. Use ecc_digits_from_bytes
since this function can now handle an input byte array that provides
less bytes than what a coordinate of a curve requires - the function
provides zeros for the missing (leading) bytes.

See: c6ab5c915da4 ("crypto: ecc - Prevent ecc_digits_from_bytes from reading too many bytes")

Regards,
   Stefan

Stefan Berger (2):
  crypto: ecdsa - Use ecc_digits_from_bytes to create hash digits array
  crypto: ecdsa - Use ecc_digits_from_bytes to convert signature

 crypto/ecdsa.c | 29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

Comments

Jarkko Sakkinen May 30, 2024, 5:08 a.m. UTC | #1
On Thu May 30, 2024 at 2:08 AM EEST, Stefan Berger wrote:
> Simplify two functions that were using temporary byte arrays for
> converting too-short input byte arrays to digits. Use ecc_digits_from_bytes
> since this function can now handle an input byte array that provides
> less bytes than what a coordinate of a curve requires - the function
> provides zeros for the missing (leading) bytes.
>
> See: c6ab5c915da4 ("crypto: ecc - Prevent ecc_digits_from_bytes from reading too many bytes")
>
> Regards,
>    Stefan
>
> Stefan Berger (2):
>   crypto: ecdsa - Use ecc_digits_from_bytes to create hash digits array
>   crypto: ecdsa - Use ecc_digits_from_bytes to convert signature
>
>  crypto/ecdsa.c | 29 ++++++-----------------------
>  1 file changed, 6 insertions(+), 23 deletions(-)

BTW, would it make sense split ecdsa signature encoding to its own patch
in my next patch set version and name it ecdsa_* style and put it to
ecdsa.c?

Just asking this because the part should be the same same for any ECDSA
signature. It must scale also to all NIST variants before my patch set
can land.

BR, Jarkko
Stefan Berger May 30, 2024, 12:16 p.m. UTC | #2
On 5/30/24 01:08, Jarkko Sakkinen wrote:
> On Thu May 30, 2024 at 2:08 AM EEST, Stefan Berger wrote:
>> Simplify two functions that were using temporary byte arrays for
>> converting too-short input byte arrays to digits. Use ecc_digits_from_bytes
>> since this function can now handle an input byte array that provides
>> less bytes than what a coordinate of a curve requires - the function
>> provides zeros for the missing (leading) bytes.
>>
>> See: c6ab5c915da4 ("crypto: ecc - Prevent ecc_digits_from_bytes from reading too many bytes")
>>
>> Regards,
>>     Stefan
>>
>> Stefan Berger (2):
>>    crypto: ecdsa - Use ecc_digits_from_bytes to create hash digits array
>>    crypto: ecdsa - Use ecc_digits_from_bytes to convert signature
>>
>>   crypto/ecdsa.c | 29 ++++++-----------------------
>>   1 file changed, 6 insertions(+), 23 deletions(-)
> 
> BTW, would it make sense split ecdsa signature encoding to its own patch
> in my next patch set version and name it ecdsa_* style and put it to
> ecdsa.c?

I would only put it into ecdsa.c if functions inside this file (can) 
make use of it, otherwise leave it in your file.

> 
> Just asking this because the part should be the same same for any ECDSA
> signature. It must scale also to all NIST variants before my patch set
> can land.
> 
> BR, Jarkko
>
Jarkko Sakkinen June 4, 2024, 4:30 p.m. UTC | #3
On Thu May 30, 2024 at 3:16 PM EEST, Stefan Berger wrote:
>
>
> On 5/30/24 01:08, Jarkko Sakkinen wrote:
> > On Thu May 30, 2024 at 2:08 AM EEST, Stefan Berger wrote:
> >> Simplify two functions that were using temporary byte arrays for
> >> converting too-short input byte arrays to digits. Use ecc_digits_from_bytes
> >> since this function can now handle an input byte array that provides
> >> less bytes than what a coordinate of a curve requires - the function
> >> provides zeros for the missing (leading) bytes.
> >>
> >> See: c6ab5c915da4 ("crypto: ecc - Prevent ecc_digits_from_bytes from reading too many bytes")
> >>
> >> Regards,
> >>     Stefan
> >>
> >> Stefan Berger (2):
> >>    crypto: ecdsa - Use ecc_digits_from_bytes to create hash digits array
> >>    crypto: ecdsa - Use ecc_digits_from_bytes to convert signature
> >>
> >>   crypto/ecdsa.c | 29 ++++++-----------------------
> >>   1 file changed, 6 insertions(+), 23 deletions(-)
> > 
> > BTW, would it make sense split ecdsa signature encoding to its own patch
> > in my next patch set version and name it ecdsa_* style and put it to
> > ecdsa.c?
>
> I would only put it into ecdsa.c if functions inside this file (can) 
> make use of it, otherwise leave it in your file.

Yep, that specific part has no binding per se to anything related to
TPM2. It is also dead easy to detach.

Here I would suggest to take a similar angle as with CRYPTO_LIB_AES so
that it is easily and directly callable from either side with no fuss.

I'll mangle it that way at least for the next version and we can see
then how it looks like.

BR, Jarkko
Herbert Xu June 7, 2024, 11:55 a.m. UTC | #4
On Wed, May 29, 2024 at 07:08:25PM -0400, Stefan Berger wrote:
> Simplify two functions that were using temporary byte arrays for
> converting too-short input byte arrays to digits. Use ecc_digits_from_bytes
> since this function can now handle an input byte array that provides
> less bytes than what a coordinate of a curve requires - the function
> provides zeros for the missing (leading) bytes.
> 
> See: c6ab5c915da4 ("crypto: ecc - Prevent ecc_digits_from_bytes from reading too many bytes")
> 
> Regards,
>    Stefan
> 
> Stefan Berger (2):
>   crypto: ecdsa - Use ecc_digits_from_bytes to create hash digits array
>   crypto: ecdsa - Use ecc_digits_from_bytes to convert signature
> 
>  crypto/ecdsa.c | 29 ++++++-----------------------
>  1 file changed, 6 insertions(+), 23 deletions(-)
> 
> -- 
> 2.43.0

All applied.  Thanks.