feat: v0.7.1, compiles without smart card(encrypt only)

This commit is contained in:
2023-10-29 17:01:38 +08:00
parent 25de8ea682
commit 3a3ebd64bf
6 changed files with 32 additions and 8 deletions

2
Cargo.lock generated
View File

@@ -1727,7 +1727,7 @@ dependencies = [
[[package]] [[package]]
name = "tiny-encrypt" name = "tiny-encrypt"
version = "0.7.0" version = "0.7.1"
dependencies = [ dependencies = [
"aes-gcm-stream", "aes-gcm-stream",
"base64", "base64",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "tiny-encrypt" name = "tiny-encrypt"
version = "0.7.0" version = "0.7.1"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
description = "A simple and tiny file encrypt tool" description = "A simple and tiny file encrypt tool"
@@ -8,6 +8,10 @@ repository = "https://git.hatter.ink/hatter/tiny-encrypt-rs"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["smartcard"]
smartcard = ["openpgp-card", "openpgp-card-pcsc", "yubikey"]
[dependencies] [dependencies]
aes-gcm-stream = "0.2" aes-gcm-stream = "0.2"
base64 = "0.21" base64 = "0.21"
@@ -18,8 +22,8 @@ flate2 = "1.0"
fs-set-times = "0.20" fs-set-times = "0.20"
hex = "0.4" hex = "0.4"
indicatif = "0.17" indicatif = "0.17"
openpgp-card = "0.3" openpgp-card = { version = "0.3", optional = true }
openpgp-card-pcsc = "0.3" openpgp-card-pcsc = { version = "0.3", optional = true }
p256 = { version = "0.13", features = ["pem", "ecdh", "pkcs8"] } p256 = { version = "0.13", features = ["pem", "ecdh", "pkcs8"] }
p384 = { version = "0.13", features = ["pem", "ecdh", "pkcs8"] } p384 = { version = "0.13", features = ["pem", "ecdh", "pkcs8"] }
rand = "0.8" rand = "0.8"
@@ -35,7 +39,7 @@ simpledateformat = "0.1"
tabled = "0.14" tabled = "0.14"
x25519-dalek = "2.0" x25519-dalek = "2.0"
x509-parser = "0.15" x509-parser = "0.15"
yubikey = { version = "0.8", features = ["untested"] } yubikey = { version = "0.8", features = ["untested"], optional = true }
zeroize = "1.6" zeroize = "1.6"
[patch.crates-io] [patch.crates-io]

View File

@@ -19,6 +19,11 @@ Set default encryption algorithm:
export TINY_ENCRYPT_DEFAULT_ALGORITHM='AES' # or CHACHA20 export TINY_ENCRYPT_DEFAULT_ALGORITHM='AES' # or CHACHA20
``` ```
Compile only encrypt:
```shell
cargo build --release --no-default-features
```
<br> <br>
Encrypt config `~/.tinyencrypt/config-rs.json`: Encrypt config `~/.tinyencrypt/config-rs.json`:

View File

@@ -7,10 +7,15 @@ use crate::util;
pub struct CmdVersion {} pub struct CmdVersion {}
pub fn version(_cmd_version: CmdVersion) -> XResult<()> { pub fn version(_cmd_version: CmdVersion) -> XResult<()> {
let mut features: Vec<&str> = vec![];
#[cfg(feature = "smartcard")]
features.push("smartcard");
if features.is_empty() { features.push("-"); }
println!( println!(
"User-Agent: {}\n{}", "User-Agent: {} [ with features: {} ]\n{}",
util::get_user_agent(), util::get_user_agent(),
env!("CARGO_PKG_DESCRIPTION"), features.join(", "),
env!("CARGO_PKG_DESCRIPTION")
); );
Ok(()) Ok(())
} }

View File

@@ -1,7 +1,10 @@
pub use cmd_config::CmdConfig; pub use cmd_config::CmdConfig;
pub use cmd_config::config; pub use cmd_config::config;
#[cfg(feature = "smartcard")]
pub use cmd_decrypt::CmdDecrypt; pub use cmd_decrypt::CmdDecrypt;
#[cfg(feature = "smartcard")]
pub use cmd_decrypt::decrypt; pub use cmd_decrypt::decrypt;
#[cfg(feature = "smartcard")]
pub use cmd_decrypt::decrypt_single; pub use cmd_decrypt::decrypt_single;
pub use cmd_directdecrypt::CmdDirectDecrypt; pub use cmd_directdecrypt::CmdDirectDecrypt;
pub use cmd_directdecrypt::direct_decrypt; pub use cmd_directdecrypt::direct_decrypt;
@@ -20,7 +23,9 @@ mod util;
mod util_env; mod util_env;
mod util_digest; mod util_digest;
mod util_progress; mod util_progress;
#[cfg(feature = "smartcard")]
mod util_piv; mod util_piv;
#[cfg(feature = "smartcard")]
mod util_pgp; mod util_pgp;
mod util_p256; mod util_p256;
mod util_p384; mod util_p384;
@@ -38,6 +43,7 @@ mod util_enc_file;
mod cmd_version; mod cmd_version;
mod cmd_config; mod cmd_config;
mod cmd_info; mod cmd_info;
#[cfg(feature = "smartcard")]
mod cmd_decrypt; mod cmd_decrypt;
mod cmd_encrypt; mod cmd_encrypt;
mod cmd_directdecrypt; mod cmd_directdecrypt;

View File

@@ -3,7 +3,9 @@ extern crate core;
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
use rust_util::XResult; use rust_util::XResult;
use tiny_encrypt::{CmdConfig, CmdDecrypt, CmdDirectDecrypt, CmdEncrypt, CmdInfo, CmdVersion}; use tiny_encrypt::{CmdConfig, CmdDirectDecrypt, CmdEncrypt, CmdInfo, CmdVersion};
#[cfg(feature = "smartcard")]
use tiny_encrypt::CmdDecrypt;
#[derive(Debug, Parser)] #[derive(Debug, Parser)]
#[command(name = "tiny-encrypt-rs")] #[command(name = "tiny-encrypt-rs")]
@@ -18,6 +20,7 @@ enum Commands {
/// Encrypt file(s) /// Encrypt file(s)
#[command(arg_required_else_help = true, short_flag = 'e')] #[command(arg_required_else_help = true, short_flag = 'e')]
Encrypt(CmdEncrypt), Encrypt(CmdEncrypt),
#[cfg(feature = "smartcard")]
/// Decrypt file(s) /// Decrypt file(s)
#[command(arg_required_else_help = true, short_flag = 'd')] #[command(arg_required_else_help = true, short_flag = 'd')]
Decrypt(CmdDecrypt), Decrypt(CmdDecrypt),
@@ -39,6 +42,7 @@ fn main() -> XResult<()> {
let args = Cli::parse(); let args = Cli::parse();
match args.command { match args.command {
Commands::Encrypt(cmd_encrypt) => tiny_encrypt::encrypt(cmd_encrypt), Commands::Encrypt(cmd_encrypt) => tiny_encrypt::encrypt(cmd_encrypt),
#[cfg(feature = "smartcard")]
Commands::Decrypt(cmd_decrypt) => tiny_encrypt::decrypt(cmd_decrypt), Commands::Decrypt(cmd_decrypt) => tiny_encrypt::decrypt(cmd_decrypt),
Commands::DirectDecrypt(cmd_direct_decrypt) => tiny_encrypt::direct_decrypt(cmd_direct_decrypt), Commands::DirectDecrypt(cmd_direct_decrypt) => tiny_encrypt::direct_decrypt(cmd_direct_decrypt),
Commands::Info(cmd_info) => tiny_encrypt::info(cmd_info), Commands::Info(cmd_info) => tiny_encrypt::info(cmd_info),