FIDO\_DEV\_GET\_TOUCH\_BEGIN(3) Library Functions Manual FIDO\_DEV\_GET\_TOUCH\_BEGIN(3)

# [NAME](#NAME)

`fido_dev_get_touch_begin`, `fido_dev_get_touch_status` — asynchronously wait for touch on a FIDO2 authenticator

# [SYNOPSIS](#SYNOPSIS)

`#include <fido.h>`

`int`  
`fido_dev_get_touch_begin`(`fido_dev_t *dev`);

`int`  
`fido_dev_get_touch_status`(`fido_dev_t *dev`, `int *touched`, `int ms`);

# [DESCRIPTION](#DESCRIPTION)

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`](#fido_dev_get_touch_begin)() function initiates a touch request on `dev`.

The [`fido_dev_get_touch_status`](#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`](#fido_dev_cancel)() to terminate it.

# [RETURN VALUES](#RETURN_VALUES)

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.

# [EXAMPLES](#EXAMPLES)

Please refer to [*examples/select.c*](#examples/select.c) in [*libfido2's*](#libfido2's) source tree.

# [SEE ALSO](#SEE_ALSO)

[fido\_dev\_cancel(3)](/man/os/libfido2/fido_dev_cancel.3)

# [CAVEATS](#CAVEATS)

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 Linux 4.19.0-gvisor

---

Document: fido_dev_get_touch_status(3) from libfido2 1.17.0-r5 (Chainguard OS)
Source: https://github.com/Yubico/libfido2
