load mr signer and mr enclave from processors

This commit is contained in:
Noor 2024-10-09 13:44:21 +00:00 committed by Valentyn Faychuk
parent 33a93193c0
commit 4965623849

@ -56,6 +56,52 @@ impl InstanceMeasurement {
}
}
pub fn load_mr_signer_from_processor(self) -> Result<Self, RaTlsError> {
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<Self, RaTlsError> {
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())?)