From 3a0956d65179f41e82f5c6f38eb566267d07f790 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 27 Mar 2022 22:29:40 +0800 Subject: [PATCH] feat: openpgp card test --- examples/list_cards.rs | 21 +++++++++++++++++---- examples/list_pgp_cards.rs | 21 +++++++++++++++++++++ justfile | 4 ++++ 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 examples/list_pgp_cards.rs diff --git a/examples/list_cards.rs b/examples/list_cards.rs index af3f6ab..851ae3c 100644 --- a/examples/list_cards.rs +++ b/examples/list_cards.rs @@ -1,16 +1,29 @@ use anyhow::Result; - use openpgp_card::OpenPgp; use openpgp_card_pcsc::PcscBackend; -use openpgp_card_sequoia::card::Open; fn main() -> Result<()> { println!("The following OpenPGP cards are connected to your system:"); + let cards = PcscBackend::cards(None).expect("list cards"); + println!("Found {} cards", cards.len()); for mut card in PcscBackend::cards(None)? { let mut pgp = OpenPgp::new(&mut card); - let open = Open::new(pgp.transaction()?)?; - println!(" {}", open.application_identifier()?.ident()); + let mut trans = pgp.transaction()?; + + // println!("== {:?}", trans); + match trans.url() { + Ok(url) => println!("{}", String::from_utf8_lossy(&url)), + Err(e) => eprintln!("{:?}", e), + } + + // trans.verify_pw1_user(b"123456").expect("verify p1 user pin"); + // trans.verify_pw1_sign(b"123456").expect("verify p1 sign pin"); + // trans.verify_pw3(b"12345678").expect("verify p3 pin"); + + // let open = Open::new(pgp.transaction()?)?; + + // println!(" {}", open.application_identifier()?.ident()); } Ok(()) diff --git a/examples/list_pgp_cards.rs b/examples/list_pgp_cards.rs new file mode 100644 index 0000000..1979c80 --- /dev/null +++ b/examples/list_pgp_cards.rs @@ -0,0 +1,21 @@ +use anyhow::Result; + +use openpgp_card::OpenPgp; +use openpgp_card_pcsc::PcscBackend; +use openpgp_card_sequoia::card::Open; + +fn main() -> Result<()> { + println!("The following OpenPGP cards are connected to your system:"); + + for mut card in PcscBackend::cards(None)? { + let mut pgp = OpenPgp::new(&mut card); + let open = Open::new(pgp.transaction()?)?; + println!(" {}", open.application_identifier()?.ident()); + println!(" {}", open.application_identifier()?.application()); + println!(" {}", open.application_identifier()?.version()); + println!(" {:?}", open.fingerprints()); + } + + Ok(()) +} + diff --git a/justfile b/justfile index 72a7e36..4f7433e 100644 --- a/justfile +++ b/justfile @@ -5,4 +5,8 @@ _: example_list_cards: cargo run --example list_cards +# example list pgp cards +example_list_pgp_cards: + cargo run --example list_pgp_cards +