Commit 068b746a79372ba0d9da44c16124890b0389e485

timvisee 2023-01-04T16:20:38

Parse otpauth URL with Steam as issuer as Steam TOTP

diff --git a/src/lib.rs b/src/lib.rs
index 82cecca..3b08937 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -516,7 +516,10 @@ impl TOTP {
         match url.host() {
             Some(Host::Domain("totp")) => {}
             #[cfg(feature = "steam")]
-            Some(Host::Domain("steam")) => algorithm = Algorithm::Steam,
+            Some(Host::Domain("steam")) => {
+                algorithm = Algorithm::Steam;
+                digits = 5;
+            }
             _ => {
                 return Err(TotpUrlError::Host(url.host().unwrap().to_string()));
             }
@@ -570,6 +573,12 @@ impl TOTP {
                     )
                     .ok_or_else(|| TotpUrlError::Secret(value.to_string()))?;
                 }
+                #[cfg(feature = "steam")]
+                "issuer" if value.to_lowercase() == "steam" => {
+                    algorithm = Algorithm::Steam;
+                    digits = 5;
+                    issuer = Some(value.into());
+                }
                 "issuer" => {
                     let param_issuer = value
                         .parse::<String>()