From dc56f2df772dc8fdd2394c27b060b874e0eae0e6 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Mon, 31 Mar 2025 00:32:29 +0800 Subject: [PATCH] feat: updates --- src/cmd_se_ecdh.rs | 4 +--- src/cmd_se_ecsign.rs | 4 +--- src/cmd_se_generate.rs | 4 +--- src/seutil.rs | 8 ++++++++ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/cmd_se_ecdh.rs b/src/cmd_se_ecdh.rs index 6559be4..fcee800 100644 --- a/src/cmd_se_ecdh.rs +++ b/src/cmd_se_ecdh.rs @@ -37,9 +37,7 @@ impl Command for CommandImpl { fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError { let json_output = cmdutil::check_json_output(sub_arg_matches); - if !seutil::is_support_se() { - return simple_error!("Secure Enclave is NOT supported."); - } + seutil::check_se_supported()?; let key = sub_arg_matches.value_of("key").unwrap(); let epk = sub_arg_matches.value_of("epk").unwrap(); diff --git a/src/cmd_se_ecsign.rs b/src/cmd_se_ecsign.rs index 872057f..a786142 100644 --- a/src/cmd_se_ecsign.rs +++ b/src/cmd_se_ecsign.rs @@ -41,9 +41,7 @@ impl Command for CommandImpl { fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError { let json_output = cmdutil::check_json_output(sub_arg_matches); - if !seutil::is_support_se() { - return simple_error!("Secure Enclave is NOT supported."); - } + seutil::check_se_supported()?; let key = sub_arg_matches.value_of("key").unwrap(); let input_bytes = match sub_arg_matches.value_of("input") { None => match sub_arg_matches.value_of("input-base64") { diff --git a/src/cmd_se_generate.rs b/src/cmd_se_generate.rs index 5ff6a43..d236558 100644 --- a/src/cmd_se_generate.rs +++ b/src/cmd_se_generate.rs @@ -42,9 +42,7 @@ impl Command for CommandImpl { fn run(&self, _arg_matches: &ArgMatches, sub_arg_matches: &ArgMatches) -> CommandError { let json_output = cmdutil::check_json_output(sub_arg_matches); - if !seutil::is_support_se() { - return simple_error!("Secure Enclave is NOT supported."); - } + seutil::check_se_supported()?; let ty = sub_arg_matches.value_of("type").unwrap(); let host = sub_arg_matches.value_of("host").unwrap_or("macbook"); diff --git a/src/seutil.rs b/src/seutil.rs index 4183b77..418164d 100644 --- a/src/seutil.rs +++ b/src/seutil.rs @@ -10,6 +10,14 @@ pub fn is_support_se() -> bool { }) } +pub fn check_se_supported() -> XResult<()> { + if !is_support_se() { + simple_error!("Secure Enclave is NOT supported.") + } else { + Ok(()) + } +} + pub fn generate_secure_enclave_p256_keypair( sign: bool, require_bio: bool,