diff --git a/docs/solo/images/conforms.PNG b/docs/solo/images/conforms.PNG new file mode 100644 index 0000000..5aaec6f Binary files /dev/null and b/docs/solo/images/conforms.PNG differ diff --git a/docs/solo/images/solo_conforms.PNG b/docs/solo/images/solo_conforms.PNG new file mode 100644 index 0000000..03e3bf1 Binary files /dev/null and b/docs/solo/images/solo_conforms.PNG differ diff --git a/fido2/ctap_parse.c b/fido2/ctap_parse.c index ffa1301..0825bba 100644 --- a/fido2/ctap_parse.c +++ b/fido2/ctap_parse.c @@ -929,7 +929,15 @@ uint8_t parse_credential_descriptor(CborValue * arr, CTAP_credentialDescriptor * buflen = sizeof(type); ret = cbor_value_copy_text_string(&val, type, &buflen, NULL); - check_ret(ret); + if (ret == CborErrorOutOfMemory) + { + cred->type = PUB_KEY_CRED_UNKNOWN; + } + else + { + check_ret(ret); + } + if (strncmp(type, "public-key",11) == 0) { diff --git a/metadata/Solo-FIDO2-CTAP2-Authenticator.json b/metadata/Solo-FIDO2-CTAP2-Authenticator.json index 9f35933..597f60c 100644 --- a/metadata/Solo-FIDO2-CTAP2-Authenticator.json +++ b/metadata/Solo-FIDO2-CTAP2-Authenticator.json @@ -20,6 +20,9 @@ ], "userVerificationDetails": [ [ + { + "userVerification": 1 + }, { "userVerification": 4 } diff --git a/tools/testing/tests/fido2.py b/tools/testing/tests/fido2.py index 70f0e84..778cfb2 100644 --- a/tools/testing/tests/fido2.py +++ b/tools/testing/tests/fido2.py @@ -621,6 +621,20 @@ class FIDO2Tests(Tester): other={"exclude_list": [{"id": b"1234", "type": "rot13"}]}, ) + self.testMC( + "Send MC request with excludeList item with bogus type, expect SUCCESS", + cdh, + rp, + user, + key_params, + expectedError=CtapError.ERR.SUCCESS, + other={ + "exclude_list": [ + {"id": b"1234", "type": "mangoPapayaCoconutNotAPublicKey"} + ] + }, + ) + self.testMC( "Send MC request with excludeList with bad item, expect error", cdh,