diff --git a/Cargo.lock b/Cargo.lock index baa48b2..a35ba97 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -508,7 +508,7 @@ dependencies = [ [[package]] name = "card-cli" -version = "1.13.8" +version = "1.13.9" dependencies = [ "aes-gcm-stream", "authenticator 0.3.1", diff --git a/Cargo.toml b/Cargo.toml index 1522c38..e14e1cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "card-cli" -version = "1.13.8" +version = "1.13.9" authors = ["Hatter Jiang "] edition = "2018" diff --git a/src/cmd_hmac_encrypt.rs b/src/cmd_hmac_encrypt.rs index c7b5131..dc0be0f 100644 --- a/src/cmd_hmac_encrypt.rs +++ b/src/cmd_hmac_encrypt.rs @@ -19,6 +19,7 @@ impl Command for CommandImpl { .arg(cmdutil::build_with_pbe_encrypt_arg()) .arg(cmdutil::build_double_pin_check_arg()) .arg(cmdutil::build_pbe_iteration_arg()) + .arg(Arg::with_name("without-hmac-encrypt").long("without-hmac-encrypt").help("Without HMAC encrypt")) .arg(cmdutil::build_json_arg()) } @@ -28,7 +29,13 @@ impl Command for CommandImpl { let text = sub_arg_matches.value_of("plaintext").unwrap().to_string(); let mut pin_opt = sub_arg_matches.value_of("password").map(|p| p.to_string()); let ciphertext = do_encrypt(&text, &mut pin_opt, sub_arg_matches)?; - let ciphertext = hmacutil::hmac_encrypt_from_string(&ciphertext)?; + + let without_hmac_encrypt = sub_arg_matches.is_present("without-hmac-encrypt"); + let ciphertext = if without_hmac_encrypt { + ciphertext + } else { + hmacutil::hmac_encrypt_from_string(&ciphertext)? + }; if json_output { let mut json = BTreeMap::<&'_ str, String>::new();