fix warnings

This commit is contained in:
shimun 2020-04-01 19:20:48 +02:00
parent 822cebd6ff
commit 9440271d90
Signed by: shimun
GPG Key ID: E81D8382DC2F971B
2 changed files with 25 additions and 22 deletions

View File

@ -3,7 +3,8 @@ extern crate ctap_hmac as ctap;
use crypto::digest::Digest; use crypto::digest::Digest;
use crypto::sha2::Sha256; use crypto::sha2::Sha256;
use ctap::extensions::hmac::HmacExtension; use ctap::extensions::hmac::HmacExtension;
use ctap::{FidoCredential, FidoCredentialRequestBuilder, AuthenticatorOptions}; use ctap::{FidoAssertionRequestBuilder, FidoCredential, FidoCredentialRequestBuilder};
use hex; use hex;
use std::env::args; use std::env::args;
use std::io::prelude::*; use std::io::prelude::*;
@ -17,23 +18,30 @@ fn main() -> ctap::FidoResult<()> {
let device_info = &mut devices.next().expect("No authenticator found"); let device_info = &mut devices.next().expect("No authenticator found");
let mut device = ctap::FidoDevice::new(device_info)?; let mut device = ctap::FidoDevice::new(device_info)?;
let mut credential = match args().skip(1).next().map(|h| FidoCredential { let credential = match args().skip(1).next().map(|h| FidoCredential {
id: hex::decode(&h).expect("Invalid credential"), id: hex::decode(&h).expect("Invalid credential"),
public_key: None, public_key: None,
}) { }) {
Some(cred) => cred, Some(cred) => cred,
_ => { _ => {
let req = FidoCredentialRequestBuilder::default().rp_id(RP_ID).rp_name("ctap_hmac crate").user_name("example").uv(false).build().unwrap(); let req = FidoCredentialRequestBuilder::default()
.rp_id(RP_ID)
.rp_name("ctap_hmac crate")
.user_name("example")
.uv(false)
.build()
.unwrap();
println!("Authorize using your device"); println!("Authorize using your device");
let cred = device.make_hmac_credential(req).expect("Failed to request credential"); let cred = device
.make_hmac_credential(&req)
.expect("Failed to request credential");
println!("Credential: {}\nNote: You can pass this credential as first argument in order to reproduce results", hex::encode(&cred.id)); println!("Credential: {}\nNote: You can pass this credential as first argument in order to reproduce results", hex::encode(&cred.id));
cred cred
} }
}; };
let credential = credential;
print!("Type in your message: "); print!("Type in your message: ");
stdout().flush(); stdout().flush().unwrap();
let mut message = String::new(); let mut message = String::new();
stdin() stdin()
.read_line(&mut message) .read_line(&mut message)
@ -44,7 +52,13 @@ fn main() -> ctap::FidoResult<()> {
let mut digest = Sha256::new(); let mut digest = Sha256::new();
digest.input(&message.as_bytes()); digest.input(&message.as_bytes());
digest.result(&mut salt); digest.result(&mut salt);
let (cred, (hash1, _hash2)) = device.get_hmac_assertion(RP_ID, &[&credential], &salt, None, None)?; let credential = &&credential;
let request = FidoAssertionRequestBuilder::default()
.rp_id(RP_ID)
.credential(credential)
.build()
.unwrap();
let (_cred, (hash1, _hash2)) = device.get_hmac_assertion(&request, &salt, None)?;
println!("Hash: {}", hex::encode(&hash1)); println!("Hash: {}", hex::encode(&hash1));
Ok(()) Ok(())
} }

View File

@ -1,24 +1,16 @@
extern crate ctap_hmac as ctap; extern crate ctap_hmac as ctap;
use crossbeam::thread;
use crypto::digest::Digest;
use crypto::sha2::Sha256;
use ctap::{ use ctap::{
FidoAssertionRequestBuilder, FidoCredential, FidoCredentialRequestBuilder, FidoDevice, FidoAssertionRequestBuilder, FidoCredential, FidoCredentialRequestBuilder, FidoDevice,
FidoError, FidoResult, FidoResult,
}; };
use failure::_core::time::Duration;
use hex; use hex;
use std::env::args; use std::env::args;
use std::io::prelude::*;
use std::io::stdin;
use std::io::stdout;
use std::sync::mpsc::channel;
use std::sync::Mutex;
const RP_ID: &str = "ctap_demo"; const RP_ID: &str = "ctap_demo";
fn run() -> ctap::FidoResult<()> { fn main() -> ctap::FidoResult<()> {
let mut credentials = args() let mut credentials = args()
.skip(1) .skip(1)
.map(|id| FidoCredential { .map(|id| FidoCredential {
@ -48,11 +40,8 @@ fn run() -> ctap::FidoResult<()> {
let mut devices = ctap::get_devices()? let mut devices = ctap::get_devices()?
.map(|handle| FidoDevice::new(&handle)) .map(|handle| FidoDevice::new(&handle))
.collect::<FidoResult<Vec<_>>>()?; .collect::<FidoResult<Vec<_>>>()?;
// run with --features request_multiple
let (cred, _) = ctap::get_assertion_devices(&req, devices.iter_mut())?; let (cred, _) = ctap::get_assertion_devices(&req, devices.iter_mut())?;
println!("Success, got assertion for: {}", hex::encode(&cred.id)); println!("Success, got assertion for: {}", hex::encode(&cred.id));
Ok(()) Ok(())
} }
fn main() {
dbg!(run());
}