diff --git a/sys/fido2/ctap/Kconfig b/sys/fido2/ctap/Kconfig index 3c7bd8035808a..ce5c673bff6bf 100644 --- a/sys/fido2/ctap/Kconfig +++ b/sys/fido2/ctap/Kconfig @@ -87,6 +87,9 @@ endchoice config FIDO2_CTAP_FLASH_START_PAGE int "First flash page to store data in" default -1 + help + Configuring this incorrectly can lead to firmware corruption so make sure + the flash page is located after the firmware. rsource "transport/Kconfig" diff --git a/sys/fido2/doc.txt b/sys/fido2/doc.txt index 6e4b35c38e4cb..74e1bf0b8f2b7 100644 --- a/sys/fido2/doc.txt +++ b/sys/fido2/doc.txt @@ -9,6 +9,8 @@ /** * @defgroup fido2 FIDO2 - Fast Identity Online 2 * @ingroup sys + * @brief Description of the FIDO2 CTAP implementation in RIOT + * @author Nils Ollrogge * * @warning This feature is experimental! * This API is experimental and in an early state - expect changes. diff --git a/sys/include/fido2/ctap/ctap_mem.h b/sys/include/fido2/ctap/ctap_mem.h index 15dffbe6d7949..f9b2bf4828ca8 100644 --- a/sys/include/fido2/ctap/ctap_mem.h +++ b/sys/include/fido2/ctap/ctap_mem.h @@ -42,6 +42,10 @@ extern "C" { /** * @brief First flash page to store data in + * + * @note This can corrupt firmware if CTAP_FLASH_START_PAGE is set to a + * flash page containing firmware. Therefore make sure that CTAP_FLASH_START_PAGE + * is located after the firmware. */ #if defined(CONFIG_FIDO2_CTAP_FLASH_START_PAGE) && \ (CONFIG_FIDO2_CTAP_FLASH_START_PAGE >= 0) diff --git a/tests/sys_fido2_ctap/README.md b/tests/sys_fido2_ctap/README.md index 7e6a336857f21..acd46d4008f41 100644 --- a/tests/sys_fido2_ctap/README.md +++ b/tests/sys_fido2_ctap/README.md @@ -31,6 +31,13 @@ Unit testing is based on the `fido2_tests` package. There are two test targets (fido2-test, fido2-test-up). The former requires no user interaction the latter does. +Note: +* The tests require python 3.6+. +* The tests require [swig](http://www.swig.org/) to be installed on your host computer. +* Running the tests for the first time will setup a virtual python environment (venv) and install python dependencies of the tests. To check the dependencies please refer to the `requirements.txt` of the [fido2-tests repository](https://github.com/solokeys/fido2-tests). +* The unit tests will require you to reboot the authenticator multiple times. Be patient before continuing as it takes a few seconds for the connection between OS and authenticator to be re-established. +* If you keep getting errors while trying to run the tests try changing to another git branch and back e.g. `git checkout branch1 && git checkout -` in order to remove build artifacts. Then re-flash the device with `make flash term` and try to run the tests again with `make fido2-test` or `make fido2-test-up`. + fido2-test 1. To make benchmarking faster disable user presence tests by enabling the CFLAG @@ -43,9 +50,4 @@ fido2-test-up 1. Make sure that the CFLAG `CONFIG_FIDO2_CTAP_DISABLE_UP` is disabled as this test target requires user interaction. 2. Flash the device with `make flash`. -3. Run the unit tests by running `make fido2-test-up` and follow the instructions about when to show user presence (by pressing button 1). - -Note: -* The tests require python 3.6+. -* Running the tests for the first time will setup a virtual python environment (venv) and install python dependencies of the tests. To check the dependencies please refer to the `requirements.txt` of the [fido2-tests repository](https://github.com/solokeys/fido2-tests). -* The unit tests will require you to reboot the authenticator multiple times. Be patient before continuing as it takes a few seconds for the connection between OS and authenticator to be re-established. +3. Run the unit tests by running `make fido2-test-up` and follow the instructions. E.g. when `.ACTIVATE UP ONCE` is displayed, press the configured UP button (default button 1) once.