diff --git a/Cargo.lock b/Cargo.lock index c0124b9..ede831e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -176,7 +176,8 @@ dependencies = [ "base64", "prost", "serde", - "serde_yml", + "serde_yaml", + "thiserror", "tonic", "tonic-build", ] @@ -454,16 +455,6 @@ version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" -[[package]] -name = "libyml" -version = "0.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3302702afa434ffa30847a83305f0a69d6abd74293b6554c18ec85c7ef30c980" -dependencies = [ - "anyhow", - "version_check", -] - [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -758,9 +749,9 @@ checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "serde" @@ -783,18 +774,16 @@ dependencies = [ ] [[package]] -name = "serde_yml" -version = "0.0.12" +name = "serde_yaml" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e2dd588bf1597a252c3b920e0143eb99b0f76e4e082f4c92ce34fbc9e71ddd" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap 2.7.0", "itoa", - "libyml", - "memchr", "ryu", "serde", - "version_check", + "unsafe-libyaml", ] [[package]] @@ -852,6 +841,26 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tokio" version = "1.42.0" @@ -1037,10 +1046,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] -name = "version_check" -version = "0.9.5" +name = "unsafe-libyaml" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "want" diff --git a/Cargo.toml b/Cargo.toml index 19dd633..f282463 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,8 @@ edition = "2021" base64 = "0.22.1" prost = "0.13.4" serde = { version = "1.0.216", features = ["derive"] } -serde_yml = "0.0.12" +serde_yaml = "0.9.34" +thiserror = "2.0.11" tonic = "0.12.3" [build-dependencies] diff --git a/src/sgx/types/dtpm.rs b/src/sgx/types/dtpm.rs index 04cc562..66a442d 100644 --- a/src/sgx/types/dtpm.rs +++ b/src/sgx/types/dtpm.rs @@ -180,13 +180,23 @@ impl From for pb_dtpm::RestartPolicy { } } +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("Disk Access Error: {0}")] + DiskAccess(#[from] std::io::Error), + #[error("Yaml Error: {0}")] + SerdeYaml(#[from] serde_yaml::Error), +} + +type Result = std::result::Result; + impl DtpmConfig { - pub fn from_path(path: &str) -> Result> { + pub fn from_path(path: &str) -> Result { let config_str = std::fs::read_to_string(path)?; - Ok(serde_yml::from_str(&config_str)?) + Ok(serde_yaml::from_str(&config_str)?) } - pub fn load_data(mut self) -> Result> { + pub fn load_data(mut self) -> Result { self.filesystems.iter_mut().for_each(|x| { if let FileContent::Path(path) = &x.content { let content =