From 3a4af50e277b25045f2aa7af47a0030d35af575e Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Thu, 7 Sep 2023 08:43:12 +0800 Subject: [PATCH] feat: updates --- src/cmd_decrypt.rs | 3 +-- src/cmd_info.rs | 3 +-- src/file.rs | 6 ++++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/cmd_decrypt.rs b/src/cmd_decrypt.rs index f8e49c5..cbbabf5 100644 --- a/src/cmd_decrypt.rs +++ b/src/cmd_decrypt.rs @@ -18,8 +18,7 @@ pub fn decrypt(path: &PathBuf, pin: &Option) -> XResult<()> { return simple_error!("File is not tiny encrypt file: {}", &path_display); } let mut file_in = opt_result!(File::open(path), "Open file: {} failed: {}", &path_display); - let mut meta = opt_result!(file::read_tiny_encrypt_meta(&mut file_in), "Read file: {}, failed: {}", &path_display); - meta.normalize(); + let meta = opt_result!(file::read_tiny_encrypt_meta_and_normalize(&mut file_in), "Read file: {}, failed: {}", &path_display); let path_out = &path_display[0..path_display.len() - TINY_ENC_FILE_EXT.len()]; if let Ok(_) = fs::metadata(path_out) { diff --git a/src/cmd_info.rs b/src/cmd_info.rs index ca82efb..5f94cf8 100644 --- a/src/cmd_info.rs +++ b/src/cmd_info.rs @@ -13,8 +13,7 @@ use crate::file; pub fn info(path: PathBuf, raw_meta: bool) -> XResult<()> { let path_display = format!("{}", path.display()); let mut file_in = opt_result!(File::open(path), "Open file: {} failed: {}", &path_display); - let mut meta = opt_result!(file::read_tiny_encrypt_meta(&mut file_in), "Read file: {}, failed: {}", &path_display); - meta.normalize(); + let meta = opt_result!(file::read_tiny_encrypt_meta_and_normalize(&mut file_in), "Read file: {}, failed: {}", &path_display); if raw_meta { success!("Meta data:\n{}", serde_json::to_string_pretty(&meta).expect("SHOULD NOT HAPPEN")); diff --git a/src/file.rs b/src/file.rs index 185fd1d..9c39d81 100644 --- a/src/file.rs +++ b/src/file.rs @@ -16,6 +16,12 @@ pub fn write_tiny_encrypt_meta(w: &mut W, meta: &TinyEncryptMeta) -> X Ok(meta_json_bytes_len + 2 + 4) } +pub fn read_tiny_encrypt_meta_and_normalize(r: &mut R) -> XResult { + let mut meta = read_tiny_encrypt_meta(r); + let _ = meta.as_mut().map(|meta| meta.normalize()); + meta +} + pub fn read_tiny_encrypt_meta(r: &mut R) -> XResult { let mut tag_buff = [0_u8; 2]; opt_result!(r.read_exact(&mut tag_buff), "Read tag failed: {}");