From 2f6e4d5568cf2f252422f63c62f875c4aedde29f Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Thu, 17 Aug 2023 01:40:22 +0200 Subject: [PATCH] Upgraded COSE key functions to accept EDDSA. Signed-off-by: Pol Henarejos --- src/fido/cbor.c | 3 +++ src/fido/fido.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/fido/cbor.c b/src/fido/cbor.c index d8ece1d..b5d90e8 100644 --- a/src/fido/cbor.c +++ b/src/fido/cbor.c @@ -187,6 +187,9 @@ CborError COSE_key(mbedtls_ecp_keypair *key, CborEncoder *mapEncoderParent, Cbor else if (key->grp.id == MBEDTLS_ECP_DP_CURVE25519) { alg = FIDO2_ALG_ECDH_ES_HKDF_256; } + else if (key->grp.id == MBEDTLS_ECP_DP_ED25519) { + alg = FIDO2_ALG_EDDSA; + } return COSE_key_params(crv, alg, &key->grp, &key->Q, mapEncoderParent, mapEncoder); } CborError COSE_key_shared(mbedtls_ecdh_context *key, CborEncoder *mapEncoderParent, CborEncoder *mapEncoder) { diff --git a/src/fido/fido.c b/src/fido/fido.c index 4ebe8a3..157e672 100644 --- a/src/fido/fido.c +++ b/src/fido/fido.c @@ -120,6 +120,12 @@ int mbedtls_curve_to_fido(mbedtls_ecp_group_id id) { else if (id == MBEDTLS_ECP_DP_CURVE448) { return FIDO2_CURVE_X448; } + else if (id == MBEDTLS_ECP_DP_ED25519) { + return FIDO2_CURVE_ED25519; + } + else if (id == MBEDTLS_ECP_DP_ED448) { + return FIDO2_CURVE_ED448; + } return 0; }