From 297c34914bf73ed7a6effaf346a5cb1a86393e98 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Tue, 11 Mar 2025 15:19:49 +0100 Subject: [PATCH] Do not report EDDSA on get info if not supported. Signed-off-by: Pol Henarejos --- src/fido/cbor_get_info.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/fido/cbor_get_info.c b/src/fido/cbor_get_info.c index 609f2bf..bd554bb 100644 --- a/src/fido/cbor_get_info.c +++ b/src/fido/cbor_get_info.c @@ -98,9 +98,15 @@ int cbor_get_info() { CBOR_CHECK(cbor_encode_uint(&mapEncoder, 0x0A)); - CBOR_CHECK(cbor_encoder_create_array(&mapEncoder, &arrayEncoder, 5)); + uint8_t curves = 4; +#ifdef MBEDTLS_EDDSA_C + curves++; +#endif + CBOR_CHECK(cbor_encoder_create_array(&mapEncoder, &arrayEncoder, curves)); CBOR_CHECK(COSE_public_key(FIDO2_ALG_ES256, &arrayEncoder, &mapEncoder2)); +#ifdef MBEDTLS_EDDSA_C CBOR_CHECK(COSE_public_key(FIDO2_ALG_EDDSA, &arrayEncoder, &mapEncoder2)); +#endif CBOR_CHECK(COSE_public_key(FIDO2_ALG_ES384, &arrayEncoder, &mapEncoder2)); CBOR_CHECK(COSE_public_key(FIDO2_ALG_ES512, &arrayEncoder, &mapEncoder2)); CBOR_CHECK(COSE_public_key(FIDO2_ALG_ES256K, &arrayEncoder, &mapEncoder2));