vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit 17052b665f5d49a6d185ed8e1adee1c4278d70ba
parent c5c9e3fd65df3624e259818b6c23c2816bb8bb66
Author: Daniel GarcĂ­a <dani-garcia@users.noreply.github.com>
Date:   Sat, 17 Nov 2018 15:28:41 +0100

Merge pull request #257 from Step7750/fix-nfc-mobile

Fixes NFC Response for Mobile Yubikey OTP Login
Diffstat:
Msrc/api/core/two_factor.rs | 4++--
Msrc/api/identity.rs | 13+++++++++++++
2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/api/core/two_factor.rs b/src/api/core/two_factor.rs @@ -507,9 +507,9 @@ struct EnableYubikeyData { #[derive(Deserialize, Serialize, Debug)] #[allow(non_snake_case)] -struct YubikeyMetadata { +pub struct YubikeyMetadata { Keys: Vec<String>, - Nfc: bool, + pub Nfc: bool, } use yubico::Yubico; diff --git a/src/api/identity.rs b/src/api/identity.rs @@ -269,6 +269,19 @@ fn _json_err_twofactor(providers: &[i32], user_uuid: &str, conn: &DbConn) -> Api result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map); } + Some(TwoFactorType::YubiKey) => { + let twofactor = match TwoFactor::find_by_user_and_type(user_uuid, TwoFactorType::YubiKey as i32, &conn) { + Some(tf) => tf, + None => err!("No YubiKey devices registered"), + }; + + let yubikey_metadata: two_factor::YubikeyMetadata = serde_json::from_str(&twofactor.data).expect("Can't parse Yubikey Metadata"); + + let mut map = JsonMap::new(); + map.insert("Nfc".into(), Value::Bool(yubikey_metadata.Nfc)); + result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map); + } + _ => {} } }