| Message ID | 20240902053326.3273410-2-chiawei_wang@aspeedtech.com |
|---|---|
| State | Superseded |
| Delegated to: | Tom Rini |
| Headers | show |
| Series | aspeed: ast2700: Add Caliptra ECDSA driver | expand |
On Mon, 2 Sept 2024 at 07:33, Chia-Wei Wang <chiawei_wang@aspeedtech.com> wrote: > > Add ECDSA384 algorithm support for image signing and verification. > > Signed-off-by: Chia-Wei Wang <chiawei_wang@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 <sjg@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 >
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[] = {
Add ECDSA384 algorithm support for image signing and verification. Signed-off-by: Chia-Wei Wang <chiawei_wang@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(-)