From 242c044ab111a37aad3b0775727c36a4c5f0102c Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 15 Feb 2022 11:28:08 +0100 Subject: [PATCH] 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 --- sk-usbhid.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sk-usbhid.c b/sk-usbhid.c index dfe88789a..06bf0e85c 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -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;