feat: updates
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
});
|
||||
|
||||
17
src/main.rs
17
src/main.rs
@@ -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),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user