feat: upload directory in launch config
stream file upload dtpm grpc compression new actix static server package updated config with directory sample
This commit is contained in:
		
							parent
							
								
									9a5387b931
								
							
						
					
					
						commit
						4746a31a09
					
				
							
								
								
									
										144
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										144
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -605,6 +605,26 @@ version = "1.6.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "bincode" | ||||
| version = "2.0.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" | ||||
| dependencies = [ | ||||
|  "bincode_derive", | ||||
|  "serde", | ||||
|  "unty", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "bincode_derive" | ||||
| version = "2.0.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" | ||||
| dependencies = [ | ||||
|  "virtue", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "bindgen" | ||||
| version = "0.69.5" | ||||
| @ -1163,15 +1183,18 @@ dependencies = [ | ||||
| [[package]] | ||||
| name = "detee-shared" | ||||
| version = "0.1.0" | ||||
| source = "git+ssh://git@gitea.detee.cloud/testnet/proto.git?branch=main#3024c00b8e1c93e70902793385b92bc0a8d1f26a" | ||||
| source = "git+ssh://git@gitea.detee.cloud/testnet/proto.git?branch=feat_dir_support_dtpm_config#64d7a1c9e16836615602636e346a356960dabd00" | ||||
| dependencies = [ | ||||
|  "base64", | ||||
|  "bincode", | ||||
|  "prost", | ||||
|  "serde", | ||||
|  "serde_yaml", | ||||
|  "tar", | ||||
|  "thiserror 2.0.11", | ||||
|  "tonic", | ||||
|  "tonic-build", | ||||
|  "zstd", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| @ -1369,6 +1392,18 @@ version = "0.2.9" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "filetime" | ||||
| version = "0.2.25" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "libc", | ||||
|  "libredox", | ||||
|  "windows-sys 0.59.0", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "fixed-hash" | ||||
| version = "0.8.0" | ||||
| @ -2169,6 +2204,17 @@ version = "0.2.11" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "libredox" | ||||
| version = "0.1.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" | ||||
| dependencies = [ | ||||
|  "bitflags", | ||||
|  "libc", | ||||
|  "redox_syscall", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "libz-sys" | ||||
| version = "1.1.22" | ||||
| @ -2187,6 +2233,12 @@ version = "0.4.14" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "linux-raw-sys" | ||||
| version = "0.9.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "litemap" | ||||
| version = "0.7.4" | ||||
| @ -2787,6 +2839,15 @@ dependencies = [ | ||||
|  "yasna", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "redox_syscall" | ||||
| version = "0.5.11" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" | ||||
| dependencies = [ | ||||
|  "bitflags", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "regex" | ||||
| version = "1.11.1" | ||||
| @ -2988,10 +3049,23 @@ dependencies = [ | ||||
|  "bitflags", | ||||
|  "errno", | ||||
|  "libc", | ||||
|  "linux-raw-sys", | ||||
|  "linux-raw-sys 0.4.14", | ||||
|  "windows-sys 0.59.0", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "rustix" | ||||
| version = "1.0.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" | ||||
| dependencies = [ | ||||
|  "bitflags", | ||||
|  "errno", | ||||
|  "libc", | ||||
|  "linux-raw-sys 0.9.4", | ||||
|  "windows-sys 0.52.0", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "rustls" | ||||
| version = "0.23.23" | ||||
| @ -3469,6 +3543,17 @@ version = "1.0.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "tar" | ||||
| version = "0.4.44" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" | ||||
| dependencies = [ | ||||
|  "filetime", | ||||
|  "libc", | ||||
|  "xattr", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "tempfile" | ||||
| version = "3.17.1" | ||||
| @ -3479,7 +3564,7 @@ dependencies = [ | ||||
|  "fastrand", | ||||
|  "getrandom 0.3.1", | ||||
|  "once_cell", | ||||
|  "rustix", | ||||
|  "rustix 0.38.42", | ||||
|  "windows-sys 0.59.0", | ||||
| ] | ||||
| 
 | ||||
| @ -3717,6 +3802,7 @@ dependencies = [ | ||||
|  "tower-layer", | ||||
|  "tower-service", | ||||
|  "tracing", | ||||
|  "zstd", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| @ -3918,6 +4004,12 @@ version = "0.9.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "unty" | ||||
| version = "0.0.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "ureq" | ||||
| version = "3.0.3" | ||||
| @ -4002,6 +4094,12 @@ version = "0.9.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "virtue" | ||||
| version = "0.0.18" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "wait-timeout" | ||||
| version = "0.2.1" | ||||
| @ -4134,7 +4232,7 @@ dependencies = [ | ||||
|  "either", | ||||
|  "home", | ||||
|  "once_cell", | ||||
|  "rustix", | ||||
|  "rustix 0.38.42", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| @ -4331,6 +4429,16 @@ dependencies = [ | ||||
|  "time", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "xattr" | ||||
| version = "1.5.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" | ||||
| dependencies = [ | ||||
|  "libc", | ||||
|  "rustix 1.0.5", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "yasna" | ||||
| version = "0.5.2" | ||||
| @ -4447,3 +4555,31 @@ dependencies = [ | ||||
|  "quote", | ||||
|  "syn 2.0.91", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "zstd" | ||||
| version = "0.13.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" | ||||
| dependencies = [ | ||||
|  "zstd-safe", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "zstd-safe" | ||||
| version = "7.2.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" | ||||
| dependencies = [ | ||||
|  "zstd-sys", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "zstd-sys" | ||||
| version = "2.0.15+zstd.1.5.7" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" | ||||
| dependencies = [ | ||||
|  "cc", | ||||
|  "pkg-config", | ||||
| ] | ||||
|  | ||||
| @ -19,7 +19,7 @@ serde_yaml = "0.9.34" | ||||
| tabled = "0.17.0" | ||||
| tokio-stream = "0.1.17" | ||||
| tokio = { version = "1.42.0", features = ["macros", "rt-multi-thread"] } | ||||
| tonic = { version = "0.12" } | ||||
| tonic = { version = "0.12", features = ["zstd"] } | ||||
| thiserror = "2.0.9" | ||||
| bs58 = "0.5.1" | ||||
| chrono = "0.4.39" | ||||
| @ -35,7 +35,7 @@ tokio-retry = "0.3.0" | ||||
| detee-sgx = { git = "ssh://git@gitea.detee.cloud/testnet/detee-sgx.git", branch = "hratls", features=["hratls", "qvl"] } | ||||
| shadow-rs = { version = "1.1.1", features = ["metadata"] } | ||||
| 
 | ||||
| detee-shared = { git = "ssh://git@gitea.detee.cloud/testnet/proto.git", branch = "main" } | ||||
| detee-shared = { git = "ssh://git@gitea.detee.cloud/testnet/proto.git", branch = "feat_dir_support_dtpm_config" } | ||||
| # detee-shared = { path = "../detee-shared" } | ||||
| 
 | ||||
| [build-dependencies] | ||||
|  | ||||
| @ -1,15 +1,21 @@ | ||||
| filesystems: | ||||
|   # - path: /bin/actix-hello-world | ||||
|   #   content: !path "./samples/new_app/binaries/actix-test-app.bin" | ||||
| environments: | ||||
|   - name: APP_NAME | ||||
|     value: actix-test | ||||
|   - name: PORT | ||||
|     value: 8080 | ||||
| #  - name: STATIC_DIR | ||||
| #    value: "/static/html_doc" | ||||
| child_processes: | ||||
|   - path: /bin/actix-app-info | ||||
|     arguments: ["pg_1_arg_1", "pg_1_arg_2"] | ||||
|   - path: /bin/actix-static-server | ||||
|     arguments: [] | ||||
|     restart: | ||||
|       max_retries: 2 | ||||
|       delay_seconds: 2 | ||||
|       policy: !OnNonZeroExit true | ||||
| filesystems: | ||||
|   - path: /host | ||||
|     content: !path "./src" | ||||
|   - path: /host | ||||
|     content: !path "./samples" | ||||
| #  - path: /static | ||||
| #    content: !path "./html_doc" | ||||
| @ -143,8 +143,10 @@ fn clap_cmd() -> Command { | ||||
|                         Arg::new("package") | ||||
|                         .long("package") | ||||
|                         .help("Enclave package name") | ||||
|                         .default_value("base-package") | ||||
|                         .value_parser(["base-package", "actix-app-info", "go-app-info"]) | ||||
|                         // .default_value("base-package")
 | ||||
|                         // .value_parser(["base-package", "actix-app-info", "go-app-info"])
 | ||||
|                         .default_value("actix-static-server") | ||||
|                         .value_parser(["actix-static-server"]) | ||||
|                     ) | ||||
|                     .arg( | ||||
|                         Arg::new("name") | ||||
|  | ||||
| @ -3,11 +3,17 @@ use detee_shared::common_proto::Empty; | ||||
| use hyper_rustls::HttpsConnectorBuilder; | ||||
| use rustls::ClientConfig; | ||||
| use std::sync::{Arc, RwLock}; | ||||
| use tonic::transport::{Channel, Endpoint}; | ||||
| use tokio::sync::mpsc; | ||||
| use tokio_stream::wrappers::ReceiverStream; | ||||
| use tonic::{ | ||||
|     codec::CompressionEncoding, | ||||
|     transport::{Channel, Endpoint}, | ||||
| }; | ||||
| 
 | ||||
| use detee_shared::sgx::{ | ||||
|     pb::dtpm_proto::{ | ||||
|         dtpm_config_manager_client::DtpmConfigManagerClient, DtpmConfigData, DtpmSetConfigReq, | ||||
|         FileEntry, | ||||
|     }, | ||||
|     types::dtpm::DtpmConfig, | ||||
| }; | ||||
| @ -65,10 +71,12 @@ pub async fn connect_dtpm_grpc_client( | ||||
| 
 | ||||
|     let channel = Endpoint::from_shared(hratls_uri)?.connect_with_connector(connector).await?; | ||||
| 
 | ||||
|     Ok(DtpmConfigManagerClient::new(channel)) | ||||
|     Ok(DtpmConfigManagerClient::new(channel).send_compressed(CompressionEncoding::Zstd)) | ||||
| } | ||||
| 
 | ||||
| pub async fn attest_and_send_config(loaded_config: DtpmConfig, uuid: &str) -> Result<()> { | ||||
|     let files = loaded_config.filesystems.clone(); | ||||
| 
 | ||||
|     let config_data = Some(DtpmConfigData::from(loaded_config)); | ||||
|     let req_data = DtpmSetConfigReq { config_data, ..Default::default() }; | ||||
| 
 | ||||
| @ -79,6 +87,22 @@ pub async fn attest_and_send_config(loaded_config: DtpmConfig, uuid: &str) -> Re | ||||
| 
 | ||||
|     let client = connect_dtpm_grpc_client(hratls_uri, mr_enclave).await?; | ||||
| 
 | ||||
|     let (tx, rx) = mpsc::channel(6); | ||||
|     tokio::spawn(async move { | ||||
|         for file in files { | ||||
|             let file_pb: FileEntry = file.into(); | ||||
|             let _ = tx.send(file_pb).await; | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     let fs_stream = ReceiverStream::new(rx); | ||||
| 
 | ||||
|     let _ = client | ||||
|         .clone() | ||||
|         .max_decoding_message_size(10240000) | ||||
|         .upload_files(tonic::Request::new(fs_stream)) | ||||
|         .await?; | ||||
| 
 | ||||
|     let response = client | ||||
|         .max_decoding_message_size(10240000) | ||||
|         .set_config(tonic::Request::new(req_data)) | ||||
|  | ||||
| @ -71,6 +71,13 @@ pub struct PackageElement { | ||||
| pub static PACKAGES_INDEX: LazyLock<PublicIndex> = LazyLock::new(|| { | ||||
|     PublicIndex { | ||||
|         packages: vec![ | ||||
|             PackageElement{ | ||||
|                 package_name: "actix-static-server".to_string(), | ||||
|                 package_url: "https://registry.detee.ltd/sgx/packages_staging/actix-static-server_package_2025-04-10_09-26-42.tar.gz".to_string(), | ||||
|                 launch_config_url: "https://registry.detee.ltd/sgx/launch_configs_staging/actix-static-server-launch-config_001.yaml".to_string(), | ||||
|                 mr_enclave: [40, 113, 121, 165, 242, 180, 73, 116, 237, 163, 141, 178, 63, 246, 229, 68, 109, 78, 102, 212, 22, 92, 37, 93, 171, 123, 213, 120, 162, 77, 162, 154], | ||||
|             }, | ||||
|             /* | ||||
|             PackageElement{ | ||||
|                 package_name: "base-package".to_string(), | ||||
|                 package_url: "https://registry.detee.ltd/sgx/packages/base-package_2025-03-25_13-54-06.tar.gz".to_string(), | ||||
| @ -88,8 +95,8 @@ pub static PACKAGES_INDEX: LazyLock<PublicIndex> = LazyLock::new(|| { | ||||
|                 package_url: "https://registry.detee.ltd/sgx/packages/go-gin-app-info_01_package_2025-03-26_11-30-45.tar.gz".to_string(), | ||||
|                 launch_config_url: "https://registry.detee.ltd/sgx/launch_configs/go-gin-app-info-launch-config_001.yaml".to_string(), | ||||
|                 mr_enclave: [239, 153, 28, 180, 45, 214, 226, 253, 140, 243, 34, 120, 146, 198, 75, 43, 205, 229, 33, 160, 62, 22, 244, 123, 213, 37, 186, 93, 177, 8, 129, 170], | ||||
| 
 | ||||
|             } | ||||
|             */ | ||||
|         ], | ||||
|     } | ||||
| }); | ||||
|  | ||||
| @ -18,7 +18,7 @@ pub fn package_enclave( | ||||
|         format!( | ||||
|             r#"docker run --rm -it -v ./:/app/ \ | ||||
|         -v {signing_key_path}:/keys/app_signing_key.pem:ro \ | ||||
|         noormohammedb/enclave_packager_01:pub_v3 {package_items}"#
 | ||||
|         noormohammedb/enclave_packager_01:pub_v4 {package_items}"#
 | ||||
|         ) | ||||
|     } else { | ||||
|         format!( | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user