check_sk_options: add temporary WinHello workaround

Up to libfido 1.10.0, WinHello advertises "clientPin" rather
than "uv" capability.  This is fixed in 1.11.0.  For the time
being, workaround it here.

Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
This commit is contained in:
Corinna Vinschen 2022-02-15 11:28:08 +01:00 committed by Damien Miller
parent 78774c08cc
commit 242c044ab1
1 changed files with 9 additions and 0 deletions

View File

@ -450,6 +450,15 @@ check_sk_options(fido_dev_t *dev, const char *opt, int *ret)
skdebug(__func__, "device is not fido2");
return 0;
}
/*
* Workaround required up to libfido2 1.10.0. As soon as 1.11.0
* is released and updated in the Cygwin release, we can drop this.
*/
if (fido_dev_is_winhello(dev) && strcmp (opt, "uv") == 0) {
skdebug(__func__, "device is winhello");
*ret = 1;
return 0;
}
if ((info = fido_cbor_info_new()) == NULL) {
skdebug(__func__, "fido_cbor_info_new failed");
return -1;