diff --git a/Cargo.lock b/Cargo.lock index 4c405af..aee0154 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -292,7 +292,7 @@ dependencies = [ [[package]] name = "card-cli" -version = "1.0.1" +version = "1.0.2" dependencies = [ "authenticator", "base64 0.13.0", diff --git a/Cargo.toml b/Cargo.toml index a408d58..167a45b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "card-cli" -version = "1.0.1" +version = "1.0.2" authors = ["Hatter Jiang "] edition = "2018" diff --git a/src/cmd_pgp.rs b/src/cmd_pgp.rs index 8209b7f..432f730 100644 --- a/src/cmd_pgp.rs +++ b/src/cmd_pgp.rs @@ -1,3 +1,5 @@ +use std::ops::Deref; + use chrono::{DateTime, Local}; use clap::{App, Arg, ArgMatches, SubCommand}; use openssl::bn::BigNum; @@ -6,7 +8,7 @@ use pem::Pem; use rust_util::util_clap::{Command, CommandError}; use sequoia_openpgp::crypto::mpi::PublicKey; use sequoia_openpgp::Packet; -use sequoia_openpgp::packet::{Key, Signature}; +use sequoia_openpgp::packet::{Body, Key, PKESK, SEIP, Signature}; use sequoia_openpgp::packet::signature::subpacket::{SubpacketTag, SubpacketValue}; use sequoia_openpgp::parse::{PacketParser, PacketParserResult}; use sequoia_openpgp::parse::Parse; @@ -146,13 +148,25 @@ impl Command for CommandImpl { information!("Found compressed data: {:?}", compressed_data); } Packet::PKESK(pkesk) => { - information!("Found PKESK: {:?}", pkesk); + debugging!("Found PKESK: {:?}", pkesk); + match pkesk { + PKESK::V3(pkesk3) => { + information!("Found public key encrypted session key, key ID: {}, alog: {}", pkesk3.recipient(), pkesk3.pk_algo()); + } + unknown => warning!("Unknown PKESK: {:?}", unknown), + } } Packet::SKESK(skesk) => { information!("Found SKESK: {:?}", skesk); } Packet::SEIP(seip) => { - information!("Found SEIP: {:?}", seip); + debugging!("Found SEIP: {:?}", seip); + match seip { + SEIP::V1(seip1) => match seip1.deref().body() { + Body::Processed(b) | Body::Unprocessed(b) => information!("Found encrypted data, len: {} byte(s)", b.len()), + Body::Structured(b) => information!("Found encrypted data packages, len: {}", b.len()), + } + } } Packet::MDC(mdc) => { information!("Found MDC: {:?}", mdc);