From c632416c06b46195ca02892d9d277e4983b2e8bd Mon Sep 17 00:00:00 2001 From: louib Date: Wed, 14 Feb 2024 20:01:46 -0500 Subject: [PATCH] chore: bump challenge-response The names are still yubikey-centric, but I think that can be addressed in a future PR. --- Cargo.toml | 2 +- src/key.rs | 27 ++++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 92f8d14c..69ad27d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,7 +57,7 @@ cipher = { version = "0.4", features = ["std"] } twofish = "0.7" cbc = "0.1" -challenge_response = { version = "0.3", optional = true } +challenge_response = { version = "0.4", optional = true } uuid = { version = "1.2", features = ["v4", "serde"] } hex = { version = "0.4", optional = true } diff --git a/src/key.rs b/src/key.rs index 70c9ea07..12ca66e8 100644 --- a/src/key.rs +++ b/src/key.rs @@ -8,7 +8,7 @@ use zeroize::{Zeroize, ZeroizeOnDrop}; #[cfg(feature = "challenge_response")] use challenge_response::{ config::{Config, Mode, Slot}, - Yubico, + ChallengeResponse, }; use crate::{crypt::calculate_sha256, error::DatabaseKeyError}; @@ -100,7 +100,7 @@ impl ChallengeResponseKey { Ok(response) } ChallengeResponseKey::YubikeyChallenge(yubikey, slot_number) => { - let mut yubikey_client = Yubico::new().map_err(|e| { + let mut challenge_response_client = ChallengeResponse::new().map_err(|e| { DatabaseKeyError::ChallengeResponseKeyError(format!( "Could not search for yubikey: {}", e.to_string() @@ -108,21 +108,22 @@ impl ChallengeResponseKey { })?; let slot = parse_yubikey_slot(slot_number)?; - let yubikey_device = match yubikey_client.find_yubikey_from_serial(yubikey.serial_number) { - Ok(d) => d, - Err(_e) => { - return Err(DatabaseKeyError::ChallengeResponseKeyError( - "Yubikey not found".to_string(), - )) - } - }; + let yubikey_device = + match challenge_response_client.find_device_from_serial(yubikey.serial_number) { + Ok(d) => d, + Err(_e) => { + return Err(DatabaseKeyError::ChallengeResponseKeyError( + "Yubikey not found".to_string(), + )) + } + }; let mut config = Config::new_from(yubikey_device); config = config.set_variable_size(true); config = config.set_mode(Mode::Sha1); config = config.set_slot(slot); - match yubikey_client.challenge_response_hmac(challenge, config) { + match challenge_response_client.challenge_response_hmac(challenge, config) { Ok(hmac_result) => Ok(hmac_result.to_vec()), Err(e) => Err(DatabaseKeyError::ChallengeResponseKeyError(format!( "Could not perform challenge response: {}", @@ -134,14 +135,14 @@ impl ChallengeResponseKey { } pub fn get_available_yubikeys() -> Result, DatabaseKeyError> { - let mut yubikey_client = Yubico::new().map_err(|e| { + let mut challenge_response_client = ChallengeResponse::new().map_err(|e| { DatabaseKeyError::ChallengeResponseKeyError(format!( "Could not search for yubikey: {}", e.to_string() )) })?; let mut response: Vec = vec![]; - let yubikeys = match yubikey_client.find_all_yubikeys() { + let yubikeys = match challenge_response_client.find_all_devices() { Ok(y) => y, Err(e) => { return Err(DatabaseKeyError::ChallengeResponseKeyError(format!(