diff --git a/Cargo.toml b/Cargo.toml index 6400277..19aa25d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "external-command-rs" -version = "0.1.2" +version = "0.1.3" edition = "2024" authors = ["Hatter Jiang"] repository = "https://git.hatter.ink/hatter/external-command-rs" diff --git a/src/lib.rs b/src/lib.rs index d32934d..23a5a5c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -102,6 +102,16 @@ pub fn external_sign( parameter: &str, alg: &str, content: &[u8], +) -> XResult> { + external_sign_digested(external_command, parameter, alg, content, "") +} + +pub fn external_sign_digested( + external_command: &str, + parameter: &str, + alg: &str, + content: &[u8], + digest_type: &str, ) -> XResult> { let mut cmd = Command::new(external_command); cmd.arg("external_sign"); @@ -111,6 +121,10 @@ pub fn external_sign( cmd.arg(alg); cmd.arg("--message-base64"); cmd.arg(STANDARD.encode(content)); + if !digest_type.is_empty() && digest_type != "raw" { + cmd.arg("--message-type"); + cmd.arg(digest_type); + } let cmd_stdout = run_command_stdout(cmd)?; parse_sign_result(&cmd_stdout)