[riot-notifications] [RIOT-OS/RIOT] FIDO2 support in RIOT (#16489)

Peter Kietzmann notifications at github.com
Wed May 26 17:23:01 CEST 2021


Initial testing:

1. Registration and login works with *webauthn.io* (using chrome)
![Bildschirmfoto_2021-05-26_16-40-00](https://user-images.githubusercontent.com/7765855/119683616-1556dd80-be44-11eb-851c-3ca9f6bb10b8.png)
![Bildschirmfoto_2021-05-26_16-41-02](https://user-images.githubusercontent.com/7765855/119683635-17b93780-be44-11eb-90e6-25cce85a7362.png)


2. `make fido2-tests` fails 24 tests (succeeds 27  :thumbsup: ) but IIRC this relates to python version issues. @Ollrogge can you have a look at
<details>
<summary>this output</summary>

```
...

self = <fido2._pyu2f.linux.LinuxHidDevice object at 0x7f079fd943d0>, packet = [255, 255, 255, 255, 129, 0, ...]

    def Write(self, packet):
      """See base class."""
      out = bytes(bytearray([0] + packet))  # Prepend the zero-byte (report ID)
>     os.write(self.dev, out)
E     OSError: [Errno 19] No such device

venv/lib/python3.8/site-packages/fido2/_pyu2f/linux.py:222: OSError
================================================================== short test summary info ===================================================================
FAILED tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_eddsa - OSError: [Errno 19] No such device
FAILED tests/standard/fido2/test_reset.py::test_reset - OSError: [Errno 19] No such device
FAILED tests/standard/fido2/pin/test_set_pin.py::TestSetPin::test_set_pin - OSError: [Errno 19] No such device
FAILED tests/standard/fido2/pin/test_set_pin.py::TestSetPin::test_set_pin_too_big - OSError: [Errno 19] No such device
FAILED tests/standard/fido2/pin/test_set_pin.py::TestSetPin::test_get_pin_token_but_no_pin_set - OSError: [Errno 19] No such device
FAILED tests/standard/fido2/pin/test_set_pin.py::TestSetPin::test_change_pin_but_no_pin_set - OSError: [Errno 19] No such device
FAILED tests/standard/fido2/pin/test_set_pin.py::TestSetPin::test_setting_pin_and_get_info - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_long_ping - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_init - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_ping - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_wink - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_cbor_no_payload - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_no_data_in_u2f_msg - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_invalid_hid_cmd - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_oversize_packet - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_skip_sequence_number - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_resync_and_ping - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_ping_abort - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_timeout - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_not_cont - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_check_busy - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_check_busy_interleaved - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_cid_0 - OSError: [Errno 19] No such device
FAILED tests/standard/transport/test_hid.py::TestHID::test_cid_ffffffff - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_get_assertion.py::TestGetAssertionAfterBoot::test_assertion_after_reboot - ModuleNotFoundError: No module named 'smartcard'
ERROR tests/standard/fido2/test_getinfo.py::test_get_info - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_getinfo.py::test_get_info_version - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_getinfo.py::test_Check_pin_protocols_field - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_getinfo.py::test_Check_options_field - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_getinfo.py::test_Check_uv_option - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_getinfo.py::test_Check_up_option - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_make_credential - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_attestation_format - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_authdata_length - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_cdh - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_cdh - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_user - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_user - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_rp - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_rp - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_pubKeyCredParams - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_excludeList - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_extensions - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_options - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_rp_name - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_rp_id - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_rp_icon - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_user_name - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_user_id - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_user_displayName - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_user_icon - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_pubKeyCredParams - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_pubKeyCredParams_type - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_pubKeyCredParams_alg - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_pubKeyCredParams_alg - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_unsupported_algorithm - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_exclude_list - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_exclude_list2 - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_exclude_list - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_exclude_list_type - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_missing_exclude_list_id - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_exclude_list_id - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_bad_type_exclude_list_type - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_exclude_list_excluded - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_make_credential.py::TestMakeCredential::test_unknown_option - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_reset_credential.py::test_credential_resets - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_resident_key[] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_resident_key_auth[] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_user_info_returned[] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_multiple_rk_nodisplay[] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_rk_maximum_size_nodisplay[] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_resident_key[123456] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_resident_key_auth[123456] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_user_info_returned[123456] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_multiple_rk_nodisplay[123456] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/test_resident_key.py::TestResidentKey::test_rk_maximum_size_nodisplay[123456] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_lockout.py::test_lockout - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_pin[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_get_key_agreement_fields[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_verify_flag[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_change_pin[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_get_no_pin_auth[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_zero_length_pin_auth[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_make_credential_no_pin[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::TestPin::test_get_assertion_no_pin[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_pin.py::test_pin_attempts[123456789A] - OSError: [Errno 19] No such device
ERROR tests/standard/fido2/pin/test_set_pin.py::TestSetPin::test_send_zero_length_pin_auth - OSError: [Errno 19] No such device
=================================================== 24 failed, 27 passed, 14 skipped, 63 errors in 16.15s ====================================================
make[1]: *** [Makefile:30: run] Fehler 1
make: *** [Makefile:20: fido2-test] Fehler 2
```

</details>  

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/16489#issuecomment-848862947
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210526/d9498289/attachment-0001.htm>


More information about the notifications mailing list