From 4965623849a69d25ddc73ea9ad75055293e182f8 Mon Sep 17 00:00:00 2001 From: Noor Date: Wed, 9 Oct 2024 13:44:21 +0000 Subject: [PATCH] load mr signer and mr enclave from processors --- src/config.rs | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/config.rs b/src/config.rs index a18a202..9a84688 100644 --- a/src/config.rs +++ b/src/config.rs @@ -56,6 +56,52 @@ impl InstanceMeasurement { } } + pub fn load_mr_signer_from_processor(self) -> Result { + let quote = Self::generate_static_empty_quote()?; + + let mr_signer_from_quote = quote.mrsigner().into(); + + if self.mrsigners.is_none() { + Ok(Self { + mrsigners: Some(vec![mr_signer_from_quote]), + ..self + }) + } else if !self + .mrsigners + .as_ref() + .unwrap() + .contains(&mr_signer_from_quote) + { + let mut mrsigners = self.mrsigners.clone().unwrap(); + mrsigners.push(mr_signer_from_quote); + Ok(self.with_mrsigners(mrsigners)) + } else { + Ok(self) + } + } + + pub fn load_mr_enclave_from_processor(self) -> Result { + let quote = Self::generate_static_empty_quote()?; + let mr_enclave_from_quote = quote.mrenclave().into(); + + if self.mrenclaves.is_none() { + Ok(Self { + mrenclaves: Some(vec![mr_enclave_from_quote]), + ..self + }) + } else if !self + .mrenclaves + .as_ref() + .unwrap() + .contains(&mr_enclave_from_quote) + { + let mut mrenclaves = self.mrenclaves.clone().unwrap(); + mrenclaves.push(mr_enclave_from_quote); + Ok(self.with_mrsigners(mrenclaves)) + } else { + Ok(self) + } + } fn generate_static_empty_quote() -> Result<&'static Quote, RaTlsError> { Ok(STATIC_QUOTE.as_ref().map_err(|e| e.clone())?)