On Mon, 2 Sept 2024 at 07:33, Chia-Wei Wang <chiawei_w...@aspeedtech.com> wrote: > > Add ECDSA384 algorithm support for image signing and verification. > > Signed-off-by: Chia-Wei Wang <chiawei_w...@aspeedtech.com> > --- > include/u-boot/ecdsa.h | 1 + > lib/ecdsa/ecdsa-verify.c | 14 +++++++++++--- > tools/image-sig-host.c | 7 +++++++ > 3 files changed, 19 insertions(+), 3 deletions(-) >
Reviewed-by: Simon Glass <s...@chromium.org> > diff --git a/include/u-boot/ecdsa.h b/include/u-boot/ecdsa.h > index 53490c6b287..0d4df9887e6 100644 > --- a/include/u-boot/ecdsa.h > +++ b/include/u-boot/ecdsa.h > @@ -65,5 +65,6 @@ int ecdsa_verify(struct image_sign_info *info, > /** @} */ > > #define ECDSA256_BYTES (256 / 8) > +#define ECDSA384_BYTES (384 / 8) > > #endif > diff --git a/lib/ecdsa/ecdsa-verify.c b/lib/ecdsa/ecdsa-verify.c > index 4d1835b598a..629b662cf6c 100644 > --- a/lib/ecdsa/ecdsa-verify.c > +++ b/lib/ecdsa/ecdsa-verify.c > @@ -22,8 +22,10 @@ static int ecdsa_key_size(const char *curve_name) > { > if (!strcmp(curve_name, "prime256v1")) > return 256; > - else > - return 0; > + else if (!strcmp(curve_name, "secp384r1")) > + return 384; > + > + return 0; > } > > static int fdt_get_key(struct ecdsa_public_key *key, const void *fdt, int > node) > @@ -121,12 +123,18 @@ int ecdsa_verify(struct image_sign_info *info, > return ecdsa_verify_hash(dev, info, hash, sig, sig_len); > } > > -U_BOOT_CRYPTO_ALGO(ecdsa) = { > +U_BOOT_CRYPTO_ALGO(ecdsa256) = { > .name = "ecdsa256", > .key_len = ECDSA256_BYTES, > .verify = ecdsa_verify, > }; > > +U_BOOT_CRYPTO_ALGO(ecdsa384) = { > + .name = "ecdsa384", > + .key_len = ECDSA384_BYTES, > + .verify = ecdsa_verify, > +}; > + > /* > * uclass definition for ECDSA API > * > diff --git a/tools/image-sig-host.c b/tools/image-sig-host.c > index d0133aec4c8..22253502065 100644 > --- a/tools/image-sig-host.c > +++ b/tools/image-sig-host.c > @@ -76,6 +76,13 @@ struct crypto_algo crypto_algos[] = { > .add_verify_data = ecdsa_add_verify_data, > .verify = ecdsa_verify, > }, > + { > + .name = "ecdsa384", > + .key_len = ECDSA384_BYTES, > + .sign = ecdsa_sign, > + .add_verify_data = ecdsa_add_verify_data, > + .verify = ecdsa_verify, > + }, > }; > > struct padding_algo padding_algos[] = { > -- > 2.25.1 >