Add test to explore cardholder cert functionality
This commit is contained in:
parent
39f48bf13b
commit
833a22f8f0
2 changed files with 69 additions and 7 deletions
|
@ -21,12 +21,12 @@ fn main() -> Result<()> {
|
||||||
//
|
//
|
||||||
// panic!();
|
// panic!();
|
||||||
|
|
||||||
println!("Caps");
|
// println!("Caps");
|
||||||
let _ = run_test(&mut card, test_print_caps, &[])?;
|
// let _ = run_test(&mut card, test_print_caps, &[])?;
|
||||||
// continue; // only print caps
|
// continue; // only print caps
|
||||||
|
|
||||||
// println!("Reset");
|
println!("Reset");
|
||||||
// let _ = run_test(&mut card, test_reset, &[])?;
|
let _ = run_test(&mut card, test_reset, &[])?;
|
||||||
|
|
||||||
// println!("Algo info");
|
// println!("Algo info");
|
||||||
// let _ = run_test(&mut card, test_print_algo_info, &[])?;
|
// let _ = run_test(&mut card, test_print_algo_info, &[])?;
|
||||||
|
@ -44,10 +44,13 @@ fn main() -> Result<()> {
|
||||||
// let pw_out = run_test(&mut card, test_pw_status, &[])?;
|
// let pw_out = run_test(&mut card, test_pw_status, &[])?;
|
||||||
// println!(" {:x?}", pw_out);
|
// println!(" {:x?}", pw_out);
|
||||||
|
|
||||||
print!("Private data");
|
// print!("Private data");
|
||||||
let priv_out = run_test(&mut card, test_private_data, &[])?;
|
// let priv_out = run_test(&mut card, test_private_data, &[])?;
|
||||||
println!(" {:x?}", priv_out);
|
// println!(" {:x?}", priv_out);
|
||||||
|
|
||||||
|
print!("Cardholder Cert");
|
||||||
|
let cardh_out = run_test(&mut card, test_cardholder_cert, &[])?;
|
||||||
|
println!(" {:x?}", cardh_out);
|
||||||
println!();
|
println!();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -385,6 +385,65 @@ pub fn test_private_data(
|
||||||
Ok(out)
|
Ok(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn test_cardholder_cert(
|
||||||
|
ca: &mut CardApp,
|
||||||
|
_param: &[&str],
|
||||||
|
) -> Result<TestOutput, TestError> {
|
||||||
|
let mut out = vec![];
|
||||||
|
|
||||||
|
println!();
|
||||||
|
|
||||||
|
match ca.get_cardholder_certificate() {
|
||||||
|
Ok(res) => out
|
||||||
|
.push(TestResult::Text(format!("got cert {:x?}", res.get_data()))),
|
||||||
|
Err(e) => {
|
||||||
|
out.push(TestResult::Text(format!(
|
||||||
|
"get_cardholder_certificate failed: {:?}",
|
||||||
|
e
|
||||||
|
)));
|
||||||
|
return Ok(out);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ca.verify_pw3("12345678")?;
|
||||||
|
|
||||||
|
let data = "Foo bar baz!".as_bytes();
|
||||||
|
|
||||||
|
match ca.set_cardholder_certificate(data.to_vec()) {
|
||||||
|
Ok(resp) => out.push(TestResult::Text("set cert ok".to_string())),
|
||||||
|
Err(e) => {
|
||||||
|
out.push(TestResult::Text(format!(
|
||||||
|
"set_cardholder_certificate: {:?}",
|
||||||
|
e
|
||||||
|
)));
|
||||||
|
return Ok(out);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let res = ca.get_cardholder_certificate()?;
|
||||||
|
out.push(TestResult::Text("get cert ok".to_string()));
|
||||||
|
|
||||||
|
if res.get_data() != data {
|
||||||
|
out.push(TestResult::Text(format!(
|
||||||
|
"get after set doesn't match original data: {:x?}",
|
||||||
|
data
|
||||||
|
)));
|
||||||
|
return Ok(out);
|
||||||
|
};
|
||||||
|
|
||||||
|
// try using slot 2
|
||||||
|
|
||||||
|
match ca.select_data(2, &[0x7F, 0x21]) {
|
||||||
|
Ok(res) => out.push(TestResult::Text("select_data ok".to_string())),
|
||||||
|
Err(e) => {
|
||||||
|
out.push(TestResult::Text(format!("select_data: {:?}", e)));
|
||||||
|
return Ok(out);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(out)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn test_pw_status(
|
pub fn test_pw_status(
|
||||||
ca: &mut CardApp,
|
ca: &mut CardApp,
|
||||||
_param: &[&str],
|
_param: &[&str],
|
||||||
|
|
Loading…
Reference in a new issue