diff --git a/Cargo.toml b/Cargo.toml index 8fd3184..6405eb7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,17 @@ exclude = [ "reference_apps", ] -# edition = "2021" resolver = "2" -overflow-checks = true + +[workspace.package] +edition = "2021" +authors = ["Sentient Enclaves Team "] +license = "Apache-2.0" +homepage = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +repository = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" + +[workspace.metadata] +rust-version = "1.80" [profile.release] strip = true diff --git a/README.md b/README.md index f159d7b..fa4017d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@

- + Sentient Enclaves Framework - Confidential Computing Infrastructure Banner

Welcome to the Sentient Enclaves Framework. The framework provides end-to-end infrastructure for building confidential AI applications using TEEs. diff --git a/fs-monitor/Cargo.toml b/fs-monitor/Cargo.toml index 4e6755d..71ed19b 100644 --- a/fs-monitor/Cargo.toml +++ b/fs-monitor/Cargo.toml @@ -1,7 +1,15 @@ [package] name = "fs-monitor" version = "0.8.2" +authors = ["Sentient Enclaves Team "] edition = "2021" +description = "Real-time inotify events monitoring server for file system changes in AWS Nitro Enclaves" +homepage = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +repository = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +license = "Apache-2.0" +keywords = ["filesystem", "monitoring", "tee", "enclave", "inotify"] +categories = ["filesystem", "os::unix-apis", "cryptography"] +publish = false [dependencies] inotify = "0.11.0" diff --git a/pf-proxy/Cargo.toml b/pf-proxy/Cargo.toml index 9b9baf2..559beec 100644 --- a/pf-proxy/Cargo.toml +++ b/pf-proxy/Cargo.toml @@ -1,7 +1,15 @@ [package] name = "pf-proxy" version = "0.8.2" +authors = ["Sentient Enclaves Team "] edition = "2021" +description = "Transparent vsock proxies for internet-enabled applications in AWS Nitro Enclaves" +homepage = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +repository = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +license = "Apache-2.0" +keywords = ["proxy", "vsock", "tee", "enclave", "aws-nitro"] +categories = ["network-programming", "cryptography"] +publish = false [[bin]] name = "vsock-to-ip" diff --git a/pipeline/Cargo.toml b/pipeline/Cargo.toml index 113a8db..ac40c84 100644 --- a/pipeline/Cargo.toml +++ b/pipeline/Cargo.toml @@ -5,20 +5,22 @@ authors = ["Sentient Enclaves Team "] edition = "2021" # resolver = "2" # rust-version = "1.80" -description = "Pipeline vsock secure local channel communication protocol that provides remote control of enclave via running shell commands inside the enclave and provides bidirectional files transmission into/from encalve's file system." -homepage = "https://github.com/sentient-xyz/pipeline-tee.rs/" -repository = "https://github.com/sentient-xyz/pipeline-tee.rs/" +description = "Pipeline vsock secure local channel communication protocol that provides remote control of enclave via running shell commands inside the enclave and provides bidirectional files transmission into/from enclave's file system." +homepage = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +repository = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" license = "Apache-2.0" +keywords = ["tee", "enclave", "confidential-computing", "vsock", "aws-nitro"] +categories = ["cryptography", "network-programming", "command-line-utilities"] publish = false [dependencies] -clap = "3.2.25" +clap = "4.5" log = "0.4" -nix = "0.26" -serde = { version = ">=1.0", features = ["derive"] } +nix = "0.29" +serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -byteorder = "1.3" -num = "0.2" +byteorder = "1.5" +num = "0.4" num-derive = "0.4" num-traits = "0.2" toml = "0.8" diff --git a/pipeline/src/main.rs b/pipeline/src/main.rs index 86f3fbf..e7ba507 100644 --- a/pipeline/src/main.rs +++ b/pipeline/src/main.rs @@ -29,26 +29,78 @@ fn main() { .get_one("config") .unwrap_or(&default_config_path); - let raw_config_string = std::fs::read_to_string(config_path).expect(format!("Missing '{}' configuration file.", config_path).as_str()); - let app_config: AppConfig = toml::from_str(raw_config_string.as_str()).expect(format!("Failed to parse '{}' configuration file.", config_path).as_str()); + let raw_config_string = match std::fs::read_to_string(config_path) { + Ok(s) => s, + Err(e) => { + eprintln!("Failed to read config file '{}': {}", config_path, e); + exit(1); + } + }; + + let app_config: AppConfig = match toml::from_str(raw_config_string.as_str()) { + Ok(cfg) => cfg, + Err(e) => { + eprintln!("Failed to parse config file '{}': {}", config_path, e); + exit(1); + } + }; match args.subcommand() { Some(("listen", args)) => { - let listen_args = ListenArgs::new_with(args).unwrap(); - listen(listen_args, app_config).unwrap(); + let listen_args = match ListenArgs::new_with(args) { + Ok(a) => a, + Err(e) => { + eprintln!("Invalid listen arguments: {}", e); + exit(1); + } + }; + if let Err(e) = listen(listen_args, app_config) { + eprintln!("Listen error: {}", e); + exit(1); + } } Some(("run", args)) => { - let run_args = RunArgs::new_with(args).unwrap(); - let rc = run(run_args, app_config).unwrap(); + let run_args = match RunArgs::new_with(args) { + Ok(a) => a, + Err(e) => { + eprintln!("Invalid run arguments: {}", e); + exit(1); + } + }; + let rc = match run(run_args, app_config) { + Ok(code) => code, + Err(e) => { + eprintln!("Command execution failed: {}", e); + exit(1); + } + }; std::process::exit(rc); } Some(("send-file", args)) => { - let subcmd_args = FileArgs::new_with(args).unwrap(); - send_file(subcmd_args, app_config).unwrap(); + let subcmd_args = match FileArgs::new_with(args) { + Ok(a) => a, + Err(e) => { + eprintln!("Invalid file arguments: {}", e); + exit(1); + } + }; + if let Err(e) = send_file(subcmd_args, app_config) { + eprintln!("File send failed: {}", e); + exit(1); + } } Some(("recv-file", args)) => { - let subcmd_args = FileArgs::new_with(args).unwrap(); - recv_file(subcmd_args, app_config).unwrap(); + let subcmd_args = match FileArgs::new_with(args) { + Ok(a) => a, + Err(e) => { + eprintln!("Invalid file arguments: {}", e); + exit(1); + } + }; + if let Err(e) = recv_file(subcmd_args, app_config) { + eprintln!("File receive failed: {}", e); + exit(1); + } } Some(_) | None => {} } diff --git a/ra-web-srv/Cargo.toml b/ra-web-srv/Cargo.toml index f2ad3dc..46a5fd7 100644 --- a/ra-web-srv/Cargo.toml +++ b/ra-web-srv/Cargo.toml @@ -1,7 +1,15 @@ [package] name = "ra-web-srv" version = "0.8.2" +authors = ["Sentient Enclaves Team "] edition = "2021" +description = "Remote Attestation Web Server for verifying integrity of AWS Nitro Enclave applications" +homepage = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +repository = "https://github.com/sentient-agi/Sentient-Enclaves-Framework" +license = "Apache-2.0" +keywords = ["attestation", "tee", "enclave", "aws-nitro", "security"] +categories = ["cryptography", "web-programming", "authentication"] +publish = false [[bin]] name = "ra-web-srv" @@ -16,8 +24,8 @@ axum = { version = "0.8" } axum-extra = { version = "0.10" } axum-server = { version = "0.7", features = ["tls-openssl"] } axum-macros = "0.5" -serde = { version = ">=1.0", features = ["derive"] } -serde_json = { version = ">=1.0" } +serde = { version = "1.0", features = ["derive"] } +serde_json = { version = "1.0" } serde_bytes = "0.11" serde_cbor = "0.11" futures = "0.3"