diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c4559de..32e14bd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Unreleased - Adjusted program to use Rust Edition 2021 - Updated minimum supported Rust version to `1.56.0` - Bumped `anyhow` dependency to `1.0.89` +- Bumped `base32` dependency to `0.5.1` - Bumped `directories` dependency to `5.0.1` - Bumped `libc` dependency to `0.2.159` - Bumped `serde` dependency to `1.0.147` diff --git a/Cargo.lock b/Cargo.lock index 933d5fc1..ad935c89 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,9 +25,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "base32" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" +checksum = "022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076" [[package]] name = "bitflags" diff --git a/Cargo.toml b/Cargo.toml index 933aee3b..e6f89301 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ incremental = false version = "1.0" [dependencies.base32] -version = "0.4.0" +version = "0.5.1" [dependencies.directories] version = "5" diff --git a/src/commands.rs b/src/commands.rs index ab6bcc38..9ef69153 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -887,8 +887,10 @@ fn prepare_ascii_secret(secret: &str) -> anyhow::Result { /// Prepare a base32 secret string for libnitrokey. fn prepare_base32_secret(secret: &str) -> anyhow::Result { // Some sites display the base32 secret in groups separated by spaces, we want to ignore them. - let secret = secret.replace(' ', ""); - base32::decode(base32::Alphabet::RFC4648 { padding: false }, &secret) + let mut secret = secret.replace(' ', ""); + let () = secret.make_ascii_lowercase(); + + base32::decode(base32::Alphabet::Rfc4648Lower { padding: false }, &secret) .map(|vec| format_bytes(&vec)) .context("Failed to parse base32 secret") }