detee-cli/src/sgx/packaging.rs
Noor a7eb288b5a
feat: upload directory in launch config
- stream file upload
- remove base 64 encoding
- dtpm grpc compression
- increase retry attempts while app deployment
- improve ux while deploying with progress update
- new actix static server package
- updated config with directory sample
- updated Dtpm client connection
- remove mr_signer from connetion
- reuse dtpm client connection
2025-04-21 20:36:04 +05:30

37 lines
1.1 KiB
Rust

use crate::config::Config;
use std::process::Command;
pub fn package_enclave(
items: Vec<String>,
package_type: &str,
) -> Result<i32, Box<dyn std::error::Error>> {
let package_items = items
.into_iter()
.map(|item| item.strip_prefix("./").unwrap_or(&item).to_owned())
.collect::<Vec<_>>()
.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")?)
}