summaryrefslogtreecommitdiff
path: root/lib/ecdsa/ecdsa-verify.c
diff options
context:
space:
mode:
authorChia-Wei Wang <chiawei_wang@aspeedtech.com>2024-10-14 17:56:18 +0800
committerTom Rini <trini@konsulko.com>2024-10-21 17:52:52 -0600
commit75068b1a2dbcf475c1043e7aa0f6882554d759bc (patch)
tree2a29e5485b5f474d83fb437f0c2e05952ae2ed2f /lib/ecdsa/ecdsa-verify.c
parent3794bbf9e0e7ce2652935514cbfac49545c329a9 (diff)
lib: ecdsa: Add ECDSA384 support
Add ECDSA384 algorithm support for image signing and verification. Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib/ecdsa/ecdsa-verify.c')
-rw-r--r--lib/ecdsa/ecdsa-verify.c14
1 files changed, 11 insertions, 3 deletions
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
*