diff options
author | djm@openbsd.org <djm@openbsd.org> | 2019-11-15 03:41:57 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2019-11-15 14:43:34 +1100 |
commit | 01362cf7cb979525c014714e2bccf799a46e772e (patch) | |
tree | f3fa6858f5c42a570395e50f6b33e3c77a38adb2 | |
parent | cf62307bc9758105913dcb91b418e4968ac2244d (diff) |
upstream: U2F tokens may return FIDO_ERR_USER_PRESENCE_REQUIRED when
probed to see if they own a key handle. Handle this case so the find_device()
look can work for them. Reported by Michael Forney
OpenBSD-Commit-ID: 2ccd5b30a6ddfe4dba228b7159bf168601bd9166
-rw-r--r-- | sk-usbhid.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sk-usbhid.c b/sk-usbhid.c index f81dc8f28..e07b49e9f 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c | |||
@@ -201,6 +201,10 @@ try_device(fido_dev_t *dev, const uint8_t *message, size_t message_len, | |||
201 | } | 201 | } |
202 | r = fido_dev_get_assert(dev, assert, NULL); | 202 | r = fido_dev_get_assert(dev, assert, NULL); |
203 | skdebug(__func__, "fido_dev_get_assert: %s", fido_strerr(r)); | 203 | skdebug(__func__, "fido_dev_get_assert: %s", fido_strerr(r)); |
204 | if (r == FIDO_ERR_USER_PRESENCE_REQUIRED) { | ||
205 | /* U2F tokens may return this */ | ||
206 | r = FIDO_OK; | ||
207 | } | ||
204 | out: | 208 | out: |
205 | fido_assert_free(&assert); | 209 | fido_assert_free(&assert); |
206 | 210 | ||