|
|
@ -269,12 +269,17 @@ fn activate_u2f(data: JsonUpcase<EnableU2FData>, headers: Headers, conn: DbConn) |
|
|
|
); |
|
|
|
|
|
|
|
if let Some(tf_challenge) = tf_challenge { |
|
|
|
let challenge: Challenge = serde_json::from_str(&tf_challenge.data).unwrap(); |
|
|
|
let challenge: Challenge = serde_json::from_str(&tf_challenge.data) |
|
|
|
.expect("Can't parse U2fRegisterChallenge data"); |
|
|
|
|
|
|
|
tf_challenge |
|
|
|
.delete(&conn) |
|
|
|
.expect("Error deleting U2F register challenge"); |
|
|
|
|
|
|
|
let response: RegisterResponse = serde_json::from_str(&data.DeviceResponse).unwrap(); |
|
|
|
println!("RegisterResponse {:#?}", &data.DeviceResponse); |
|
|
|
|
|
|
|
let response: RegisterResponse = |
|
|
|
serde_json::from_str(&data.DeviceResponse).expect("Can't parse DeviceResponse data"); |
|
|
|
|
|
|
|
match U2F.register_response(challenge.clone(), response) { |
|
|
|
Ok(registration) => { |
|
|
@ -349,7 +354,9 @@ impl Into<Registration> for RegistrationCopy { |
|
|
|
} |
|
|
|
|
|
|
|
fn _parse_registrations(registations: &str) -> Vec<Registration> { |
|
|
|
let registrations_copy: Vec<RegistrationCopy> = serde_json::from_str(registations).unwrap(); |
|
|
|
println!("Registrations {:#?}", registations); |
|
|
|
let registrations_copy: Vec<RegistrationCopy> = |
|
|
|
serde_json::from_str(registations).expect("Can't parse RegistrationCopy data"); |
|
|
|
|
|
|
|
registrations_copy.into_iter().map(Into::into).collect() |
|
|
|
} |
|
|
@ -377,7 +384,10 @@ pub fn validate_u2f_login(user_uuid: &str, response: &str, conn: &DbConn) -> Api |
|
|
|
|
|
|
|
let challenge = match tf_challenge { |
|
|
|
Some(tf_challenge) => { |
|
|
|
let challenge: Challenge = serde_json::from_str(&tf_challenge.data).unwrap(); |
|
|
|
println!("challenge {:#?}", &tf_challenge.data); |
|
|
|
|
|
|
|
let challenge: Challenge = serde_json::from_str(&tf_challenge.data) |
|
|
|
.expect("Can't parse U2fLoginChallenge data"); |
|
|
|
tf_challenge |
|
|
|
.delete(&conn) |
|
|
|
.expect("Error deleting U2F login challenge"); |
|
|
@ -395,11 +405,8 @@ pub fn validate_u2f_login(user_uuid: &str, response: &str, conn: &DbConn) -> Api |
|
|
|
|
|
|
|
println!("response {:#?}", response); |
|
|
|
|
|
|
|
let response: SignResponse = serde_json::from_str(response).unwrap(); |
|
|
|
|
|
|
|
println!("client_data {:#?}", response.client_data); |
|
|
|
println!("key_handle {:#?}", response.key_handle); |
|
|
|
println!("signature_data {:#?}", response.signature_data); |
|
|
|
let response: SignResponse = |
|
|
|
serde_json::from_str(response).expect("Can't parse SignResponse data"); |
|
|
|
|
|
|
|
let mut _counter: u32 = 0; |
|
|
|
for registration in registrations { |
|
|
|