FIDO_DEV_GET_TOUCH_BEGIN(3) | Library Functions Manual | FIDO_DEV_GET_TOUCH_BEGIN(3)

# NAME

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

# SYNOPSIS

library “libfido2” libcbor libcrypto libz
`#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

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.

# 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

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

# SEE ALSO

fido_dev_cancel(3)

# 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.

July 9, 2025 | Debian