// SPDX-License-Identifier: Apache-2.0 use crate::config::Config; use std::process::Command; pub fn package_enclave( items: Vec, package_type: &str, ) -> Result> { let package_items = items .into_iter() .map(|item| item.strip_prefix("./").unwrap_or(&item).to_owned()) .collect::>() .join(" "); let signing_key_path = Config::mrsigner_key_path()?; let hratls_key_path = Config::hratls_key_path()?; let docker_package_str = if package_type == "public" { format!( r#"docker run --rm -it -v ./:/app/ \ -v {signing_key_path}:/keys/app_signing_key.pem:ro \ noormohammedb/enclave_packager_01:pub_v5 {package_items}"# ) } else { format!( r#"docker run --rm -it -v ./:/app/ \ -v {signing_key_path}:/keys/app_signing_key.pem:ro \ -v {hratls_key_path}:/keys/hratls_private_key.pem:ro \ noormohammedb/enclave_packager_01:v1 {package_items}"# ) }; let mut child = Command::new("sh").arg("-c").arg(docker_package_str).spawn()?; let exit = child.wait()?; Ok(exit.code().ok_or("Could not get exit code")?) }