feat: updates

This commit is contained in:
2023-10-01 15:32:45 +08:00
parent e97b5b962e
commit 0fbe177d79
3 changed files with 18 additions and 24 deletions

View File

@@ -15,8 +15,7 @@ use yubikey::piv::{AlgorithmId, decrypt_data, RetiredSlotId, SlotId};
use yubikey::YubiKey;
use zeroize::Zeroize;
use crate::{file, util};
use crate::card::get_card;
use crate::{card, file, util};
use crate::compress::GzStreamDecoder;
use crate::crypto_aes::aes_gcm_decrypt;
use crate::spec::{TinyEncryptEnvelop, TinyEncryptEnvelopType, TinyEncryptMeta};
@@ -195,7 +194,7 @@ fn try_decrypt_key_ecdh(envelop: &TinyEncryptEnvelop, pin: &Option<String>, slot
}
fn try_decrypt_key_pgp(envelop: &TinyEncryptEnvelop, pin: &Option<String>) -> XResult<Vec<u8>> {
let card = match get_card() {
let card = match card::get_card() {
Err(e) => {
failure!("Get PGP card failed: {}", e);
return simple_error!("Get card failed: {}", e);

View File

@@ -53,14 +53,18 @@ pub fn info(cmd_info: CmdInfo) -> XResult<()> {
format_human2(Duration::from_millis(now_millis - meta.created))
));
meta.envelops.as_ref().map(|envelops| envelops.iter().enumerate().for_each(|(i, envelop)| {
infos.push(format!("{}: {}{}{}",
header(&format!("Envelop #{}", i + 1)),
envelop.r#type.get_upper_name(),
iff!(envelop.kid.is_empty(), "".into(), format!(", Kid: {}", envelop.kid)),
iff!(envelop.desc.is_none(), "".into(), format!(", Desc: {}", envelop.desc.as_ref().unwrap()))
));
}));
meta.envelops.as_ref().map(|envelops|
envelops.iter().enumerate().for_each(|(i, envelop)| {
let kid = iff!(envelop.kid.is_empty(), "".into(), format!(", Kid: {}", envelop.kid));
let desc = iff!(envelop.desc.is_none(), "".into(), format!(", Desc: {}", envelop.desc.as_ref().unwrap()));
infos.push(format!("{}: {}{}{}",
header(&format!("Envelop #{}", i + 1)),
envelop.r#type.get_upper_name(),
kid,
desc
));
})
);
meta.pgp_fingerprint.map(|fingerprint| {
infos.push(format!("{}: {}", header("PGP fingerprint"), fingerprint));
});

View File

@@ -1,7 +1,7 @@
extern crate core;
use clap::{Parser, Subcommand};
use rust_util::{debugging, XResult};
use rust_util::XResult;
use crate::cmd_decrypt::CmdDecrypt;
use crate::cmd_encrypt::CmdEncrypt;
@@ -45,17 +45,8 @@ enum Commands {
fn main() -> XResult<()> {
let args = Cli::parse();
match args.command {
Commands::Encrypt(cmd_encrypt) => {
debugging!("Encrypt: {:?}", cmd_encrypt);
cmd_encrypt::encrypt(cmd_encrypt)
}
Commands::Decrypt(cmd_decrypt) => {
debugging!("Decrypt: {:?}", cmd_decrypt);
cmd_decrypt::decrypt(cmd_decrypt)
}
Commands::Info(cmd_info) => {
debugging!("Info: {:?}", cmd_info);
cmd_info::info(cmd_info)
}
Commands::Encrypt(cmd_encrypt) => cmd_encrypt::encrypt(cmd_encrypt),
Commands::Decrypt(cmd_decrypt) => cmd_decrypt::decrypt(cmd_decrypt),
Commands::Info(cmd_info) => cmd_info::info(cmd_info),
}
}