Re: [PATCH v4 00/12] Add support for NIST P521 to ecdsa

Lukas Wunner
2024-03-04T18:10:06Z

On Thu, Feb 29, 2024 at 09:19:55PM -0500, Stefan Berger wrote:
> This series adds support for the NIST P521 curve to the ecdsa module
> to enable signature verification with it.
>
> An issue with the current code in ecdsa is that it assumes that input
> arrays providing key coordinates for example, are arrays of digits
> (a 'digit' is a 'u64'). This works well for all currently supported
> curves, such as NIST P192/256/384, but does not work for NIST P521 where
> coordinates are 8 digits + 2 bytes long. So some of the changes deal with
> converting byte arrays to digits and adjusting tests on input byte
> array lengths to tolerate arrays not providing multiples of 8 bytes.

When respinning this series as v5, feel free to add my

Tested-by: Lukas Wunner <lukas@wunner.de>

I cherry-picked the commits from your nist_p521.v5 branch...

https://github.com/stefanberger/linux-ima-namespaces/commits/nist_p521.v5/

...onto my development branch for PCI device authentication...

https://github.com/l1k/linux/commits/doe

...and tested against qemu+libspdm that an emulated NVMe drive
is able to present a valid signature using NIST P521 + SHA384
which can be verified correctly by the kernel.

I needed to fix up two of my patches, one which adds P1363
signature format support to the kernel and another fixup to
add NIST P521 support to the in-kernel SPDM library
(two top-most commits on my above-linked development branch).

I performed this test against your f81547267725 head and notice
that you pushed a new version today (with "curve->nbits == 521"
instead of strcmp), but I'm confident those two small changes
wouldn't alter the outcone, hence my Tested-by stands.

Thanks,

Lukas