Adjust to changes in openpgp-card-sequoia

This commit is contained in:
Heiko Schaefer 2022-07-25 17:24:35 +02:00
parent b614716c0b
commit 430afda40a
No known key found for this signature in database
GPG key ID: 4A849A1904CCBD7D
3 changed files with 19 additions and 19 deletions

View file

@ -65,14 +65,18 @@ pub fn test_decrypt(
"test_decrypt needs filenames for 'cert' and 'encrypted'" "test_decrypt needs filenames for 'cert' and 'encrypted'"
); );
let cert = Cert::from_str(param[0])?;
let msg = param[1].to_string(); let msg = param[1].to_string();
pgpt.verify_pw1_user(b"123456")?; pgpt.verify_pw1_user(b"123456")?;
let p = StandardPolicy::new(); let p = StandardPolicy::new();
let res = openpgp_card_sequoia::util::decrypt(&mut pgpt, &cert, msg.into_bytes(), &|| {}, &p)?; let mut open = Open::new(pgpt)?;
let mut user = open.user_card().unwrap();
let d = user.decryptor(&|| {})?;
let res = openpgp_card_sequoia::util::decrypt(d, msg.into_bytes(), &p)?;
let plain = String::from_utf8_lossy(&res); let plain = String::from_utf8_lossy(&res);
assert_eq!(plain, "Hello world!\n"); assert_eq!(plain, "Hello world!\n");
@ -94,8 +98,13 @@ pub fn test_sign(
let cert = Cert::from_str(param[0])?; let cert = Cert::from_str(param[0])?;
let mut open = Open::new(pgpt)?;
let mut sign = open.signing_card().unwrap();
let s = sign.signer(&|| {})?;
let msg = "Hello world, I am signed."; let msg = "Hello world, I am signed.";
let sig = openpgp_card_sequoia::util::sign(&mut pgpt, &cert, &mut msg.as_bytes(), &|| {})?; let sig = openpgp_card_sequoia::util::sign(s, &mut msg.as_bytes())?;
// validate sig // validate sig
assert!(util::verify_sig(&cert, msg.as_bytes(), sig.as_bytes())?); assert!(util::verify_sig(&cert, msg.as_bytes(), sig.as_bytes())?);

View file

@ -7,20 +7,18 @@ use openpgp_card_sequoia::card::Open;
use openpgp::parse::{stream::DecryptorBuilder, Parse}; use openpgp::parse::{stream::DecryptorBuilder, Parse};
use openpgp::policy::StandardPolicy; use openpgp::policy::StandardPolicy;
use openpgp::Cert;
use sequoia_openpgp as openpgp; use sequoia_openpgp as openpgp;
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = std::env::args().collect::<Vec<_>>(); let args = std::env::args().collect::<Vec<_>>();
if args.len() < 3 { if args.len() < 2 {
eprintln!("Usage: decrypt card-ident pin-file cert-file"); eprintln!("Usage: decrypt card-ident pin-file");
return Ok(()); return Ok(());
} }
let card_ident = &args[0]; let card_ident = &args[0];
let pin_file = &args[1]; let pin_file = &args[1];
let cert_file = &args[2];
let mut card = PcscBackend::open_by_ident(card_ident, None)?; let mut card = PcscBackend::open_by_ident(card_ident, None)?;
let mut pgp = OpenPgp::new(&mut card); let mut pgp = OpenPgp::new(&mut card);
@ -34,10 +32,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut user = open.user_card().unwrap(); let mut user = open.user_card().unwrap();
let p = StandardPolicy::new(); let p = StandardPolicy::new();
let cert = Cert::from_file(cert_file)?;
let d = user.decryptor(&cert, &|| { let d = user.decryptor(&|| println!("Touch confirmation needed for decryption"))?;
println!("Touch confirmation needed for decryption")
})?;
let stdin = std::io::stdin(); let stdin = std::io::stdin();
let mut stdout = std::io::stdout(); let mut stdout = std::io::stdout();

View file

@ -5,22 +5,19 @@ use openpgp_card::OpenPgp;
use openpgp_card_pcsc::PcscBackend; use openpgp_card_pcsc::PcscBackend;
use openpgp_card_sequoia::card::Open; use openpgp_card_sequoia::card::Open;
use openpgp::parse::Parse;
use openpgp::serialize::stream::{Armorer, Message, Signer}; use openpgp::serialize::stream::{Armorer, Message, Signer};
use openpgp::Cert;
use sequoia_openpgp as openpgp; use sequoia_openpgp as openpgp;
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = std::env::args().collect::<Vec<_>>(); let args = std::env::args().collect::<Vec<_>>();
if args.len() < 3 { if args.len() < 2 {
eprintln!("Usage: detach-sign card-ident pin-file cert-file"); eprintln!("Usage: detach-sign card-ident pin-file");
return Ok(()); return Ok(());
} }
let card_ident = &args[0]; let card_ident = &args[0];
let pin_file = &args[1]; let pin_file = &args[1];
let cert_file = &args[2];
let mut card = PcscBackend::open_by_ident(card_ident, None)?; let mut card = PcscBackend::open_by_ident(card_ident, None)?;
let mut pgp = OpenPgp::new(&mut card); let mut pgp = OpenPgp::new(&mut card);
@ -32,9 +29,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
open.verify_user_for_signing(&pin)?; open.verify_user_for_signing(&pin)?;
let mut sign = open.signing_card().unwrap(); let mut sign = open.signing_card().unwrap();
let s = sign.signer(&|| println!("Touch confirmation needed for signing"))?;
let cert = Cert::from_file(cert_file)?;
let s = sign.signer(&cert, &|| println!("Touch confirmation needed for signing"))?;
let stdout = std::io::stdout(); let stdout = std::io::stdout();