libfido2-util: Disable pre-flight checks for credentials with UV
authorPeter Cai <peter@typeblog.net>
Mon, 14 Nov 2022 02:12:45 +0000 (21:12 -0500)
committerPeter Cai <peter@typeblog.net>
Sat, 10 Dec 2022 20:28:49 +0000 (15:28 -0500)
commit53c1ef9ce086356d2ee126135b71ca5ad9e3897d
treebb7b6b7d047cdd4a98821929e2d24cbe4680a694
parent09e917ea4dd6f00aa3cb225072f6991a637227e1
libfido2-util: Disable pre-flight checks for credentials with UV

According to the FIDO2 spec, tokens may not support pre-flight checks
for credentials requiring UV, at least not without at least
`pinUvAuthParam` or `uv = true`. Originally, in #25268, this was
handled by passing a PIN to satisfy `pinUvAuthParams`, but this is not
ideal, since `pinUvAuthParam` can be obtained from either a PIN
or a UV verification. Forcing the user to enter the PIN here (which is
often just the fallback option on UV devices) is no better than just
trying out each device with the actual assertion request.

As a result, this commit disables pre-flight checks when the credential
requires UV, and instead reverts to the old behavior (trying out each
device and each key slot, requiring multiple user interactions) for this
type of credentials.
src/shared/libfido2-util.c