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 @@
-
+
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"