From 61d81bda871bf3b8d0a54aa4561c1b13b6819139 Mon Sep 17 00:00:00 2001 From: Shimun Date: Tue, 7 Jan 2020 21:59:38 +0100 Subject: [PATCH] Make device pin-protocol support optional --- src/lib.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 1d7acd0..038709e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -145,7 +145,12 @@ impl FidoDevice { if !response.versions.iter().any(|ver| ver == "FIDO_2_0") { Err(FidoErrorKind::DeviceUnsupported)? } - if !response.pin_protocols.iter().any(|ver| *ver == 1) { + // Require pin protocol version 1, only if pin-protocol is supported at all + if !response + .pin_protocols + .iter() + .fold(true, |supported, ver| *ver == 1 && supported) + { Err(FidoErrorKind::DeviceUnsupported)? } self.needs_pin = response.options.client_pin == Some(true);