feat: optimize decrypt

This commit is contained in:
2023-10-17 00:06:23 +08:00
parent e0b6df7c46
commit 17fae72d91

View File

@@ -124,15 +124,16 @@ pub fn decrypt_single(config: &Option<TinyEncryptConfig>,
if cmd_decrypt.direct_print {
if meta.file_length > 10 * 1024 {
return simple_error!("File too large(more than 10K) cannot direct print on console.");
}
let mut output: Vec<u8> = Vec::with_capacity(10 * 1024);
let _ = decrypt_file(
&mut file_in, meta.file_length, &mut output, &key, &nonce, meta.compress,
)?;
match String::from_utf8(output) {
Err(_) => return simple_error!("File is not UTF-8 content."),
Ok(output) => println!(">>>>> BEGIN CONTENT >>>>>\n{}\n<<<<< END CONTENT <<<<<", &output),
warning!("File too large(more than 10K) cannot direct print on console.");
} else {
let mut output: Vec<u8> = Vec::with_capacity(10 * 1024);
let _ = decrypt_file(
&mut file_in, meta.file_length, &mut output, &key, &nonce, meta.compress,
)?;
match String::from_utf8(output) {
Err(_) => warning!("File is not UTF-8 content."),
Ok(output) => println!(">>>>> BEGIN CONTENT >>>>>\n{}\n<<<<< END CONTENT <<<<<", &output),
}
}
} else {
let mut file_out = File::create(path_out)?;
@@ -150,7 +151,7 @@ pub fn decrypt_single(config: &Option<TinyEncryptConfig>,
util::zeroize(key);
util::zeroize(nonce);
drop(file_in);
if do_write_file_out && cmd_decrypt.remove_file { util::remove_file_with_msg(path); }
if do_write_file_out & &cmd_decrypt.remove_file { util::remove_file_with_msg(path); }
Ok(meta.file_length)
}