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; }