diff --git a/crates/bitwarden-fido/src/lib.rs b/crates/bitwarden-fido/src/lib.rs index ea905255e..79a431daa 100644 --- a/crates/bitwarden-fido/src/lib.rs +++ b/crates/bitwarden-fido/src/lib.rs @@ -91,6 +91,9 @@ pub enum Fido2Error { #[error("No Fido2 credentials found")] NoFido2CredentialsFound, + + #[error("Invalid counter")] + InvalidCounter, } impl TryFrom for Passkey { @@ -107,7 +110,10 @@ impl TryFrom for Passkey { } fn try_from_credential_full_view(value: Fido2CredentialFullView) -> Result { - let counter: u32 = value.counter.parse().expect("Invalid counter"); + let counter: u32 = value + .counter + .parse() + .map_err(|_| Fido2Error::InvalidCounter)?; let counter = (counter != 0).then_some(counter); let key_value = URL_SAFE_NO_PAD.decode(value.key_value)?; let user_handle = value