fido_dev_get_touch_begin, fido_dev_get_touch_status
asynchronously wait for touch on a FIDO2 authenticator

#include <fido.h>
fido_dev_get_touch_begin(fido_dev_t *dev);
fido_dev_get_touch_status(fido_dev_t *dev, int *touched, int ms);

The functions described in this page allow an application to asynchronously wait for touch on a FIDO2 authenticator. This is useful when multiple authenticators are present and the application needs to know which one to use.
The fido_dev_get_touch_begin() function initiates a touch request on dev.
The fido_dev_get_touch_status() function continues an ongoing touch request on dev, blocking up to ms milliseconds. On success, touched will be updated to reflect the touch request status. If touched is 1, the device was touched, and the touch request is terminated. If touched is 0, the application may call fido_dev_get_touch_status() to continue the touch request, or fido_dev_cancel() to terminate it.

The error codes returned by fido_dev_get_touch_begin() and fido_dev_get_touch_status() are defined in <fido/err.h>. On success, FIDO_OK is returned.

Please refer to examples/select.c in libfido2's source tree.


The fido_dev_get_touch_status() function will cause a command to be transmitted to U2F authenticators. These transmissions should not exceed a frequency of 5Hz.
August 5, 2020 Darwin 19.6.0