feat: u2f*
This commit is contained in:
@@ -47,12 +47,11 @@ impl Command for CommandImpl {
|
||||
register_tx.send(rv).unwrap();
|
||||
}));
|
||||
|
||||
information!("Start U2F register...");
|
||||
information!("App id: {}", app_id);
|
||||
information!("App id: {}, Start U2F register...", app_id);
|
||||
debugging!("Wait timeout: {} ms", timeout_ms);
|
||||
let mut manager = AuthenticatorService::new()?;
|
||||
let mut manager = opt_result!(AuthenticatorService::new(), "Create authenticator service failed: {}");
|
||||
manager.add_u2f_usb_hid_platform_transports();
|
||||
manager.register(
|
||||
if let Err(e) = manager.register(
|
||||
flags,
|
||||
timeout_ms,
|
||||
chall_bytes,
|
||||
@@ -60,33 +59,29 @@ impl Command for CommandImpl {
|
||||
vec![],
|
||||
status_tx,
|
||||
callback,
|
||||
)?;
|
||||
) {
|
||||
return simple_error!("Couldn't register: {:?}", e);
|
||||
};
|
||||
|
||||
let register_result = register_rx.recv()?;
|
||||
let register_result = opt_result!(register_rx.recv()?, "Register U2F failed: {}");
|
||||
|
||||
let u2f_registration_data = U2fRegistrationData::from(app_id, &u2fv2_challenge_str, register_result?);
|
||||
let u2f_registration_data = opt_result!(
|
||||
U2fRegistrationData::from(app_id, &u2fv2_challenge_str, register_result), "Parse registration data failed: {}");
|
||||
|
||||
match u2f_registration_data {
|
||||
Ok(data) => {
|
||||
if json_output {
|
||||
println!("{}", serde_json::to_string_pretty(&data).unwrap());
|
||||
} else {
|
||||
success!("Device info: {}", data.device_info);
|
||||
success!("Register challenge: {}", u2fv2_challenge_str);
|
||||
success!("Register challenge base64: {}", base64::encode(&u2fv2_challenge_str));
|
||||
if let Some(cert) = data.attestation_cert_pem {
|
||||
success!("Certificate: {}", cert);
|
||||
}
|
||||
if let Some(device_name) = data.device_name {
|
||||
success!("Device name: {}", device_name);
|
||||
}
|
||||
success!("Public key: {}", data.pub_key);
|
||||
success!("Key handle: {}", data.key_handle);
|
||||
}
|
||||
if json_output {
|
||||
println!("{}", serde_json::to_string_pretty(&u2f_registration_data).unwrap());
|
||||
} else {
|
||||
success!("Device info: {}", u2f_registration_data.device_info);
|
||||
success!("Register challenge: {}", u2fv2_challenge_str);
|
||||
success!("Register challenge base64: {}", base64::encode(&u2fv2_challenge_str));
|
||||
if let Some(cert) = u2f_registration_data.attestation_cert_pem {
|
||||
success!("Attestation certificate: {}", cert);
|
||||
}
|
||||
Err(e) => {
|
||||
return simple_error!("Parse registration data failed: {}", e);
|
||||
if let Some(device_name) = u2f_registration_data.device_name {
|
||||
success!("Device name: {}", device_name);
|
||||
}
|
||||
success!("Public key: {}", u2f_registration_data.pub_key);
|
||||
success!("Key handle: {}", u2f_registration_data.key_handle);
|
||||
}
|
||||
Ok(None)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user