mirror of
https://github.com/trussed-dev/fido-authenticator.git
synced 2026-06-20 04:16:16 -07:00
tests: Add Request trait and reply types
This commit is contained in:
+11
-19
@@ -3,13 +3,8 @@
|
||||
mod virt;
|
||||
mod webauthn;
|
||||
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use ciborium::Value;
|
||||
use ctap_types::ctap2::Operation;
|
||||
|
||||
use virt::Ctap2Error;
|
||||
use webauthn::{MakeCredentialRequest, PubKeyCredParam, Rp, User};
|
||||
use webauthn::{GetInfo, MakeCredential, PubKeyCredParam, Rp, User};
|
||||
|
||||
#[test]
|
||||
fn test_ping() {
|
||||
@@ -21,10 +16,9 @@ fn test_ping() {
|
||||
#[test]
|
||||
fn test_get_info() {
|
||||
virt::run_ctap2(|device| {
|
||||
let reply: BTreeMap<u8, Value> = device.call(Operation::GetInfo, &Value::Null).unwrap();
|
||||
let versions: Vec<String> = reply.get(&1).unwrap().deserialized().unwrap();
|
||||
assert!(versions.contains(&"FIDO_2_0".to_owned()));
|
||||
assert!(versions.contains(&"FIDO_2_1".to_owned()));
|
||||
let reply = device.exec(GetInfo).unwrap();
|
||||
assert!(reply.versions.contains(&"FIDO_2_0".to_owned()));
|
||||
assert!(reply.versions.contains(&"FIDO_2_1".to_owned()));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -36,13 +30,11 @@ fn test_make_credential() {
|
||||
.name("john.doe")
|
||||
.display_name("John Doe");
|
||||
let pub_key_cred_params = vec![PubKeyCredParam::new("public-key", -7)];
|
||||
let request = MakeCredentialRequest::new(b"", rp, user, pub_key_cred_params);
|
||||
let reply: BTreeMap<u8, Value> = device
|
||||
.call(Operation::MakeCredential, &request.into())
|
||||
.unwrap();
|
||||
assert_eq!(reply.get(&1).unwrap(), &Value::from("packed"));
|
||||
assert!(reply.contains_key(&2));
|
||||
assert!(reply.contains_key(&3));
|
||||
let request = MakeCredential::new(b"", rp, user, pub_key_cred_params);
|
||||
let reply = device.exec(request).unwrap();
|
||||
assert_eq!(reply.fmt, "packed");
|
||||
assert!(reply.auth_data.is_bytes());
|
||||
assert!(reply.att_stmt.is_map());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -54,8 +46,8 @@ fn test_make_credential_invalid_params() {
|
||||
.name("john.doe")
|
||||
.display_name("John Doe");
|
||||
let pub_key_cred_params = vec![PubKeyCredParam::new("public-key", -11)];
|
||||
let request = MakeCredentialRequest::new(b"", rp, user, pub_key_cred_params);
|
||||
let result = device.call::<Value>(Operation::MakeCredential, &request.into());
|
||||
let request = MakeCredential::new(b"", rp, user, pub_key_cred_params);
|
||||
let result = device.exec(request);
|
||||
assert_eq!(result, Err(Ctap2Error(0x26)));
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user