From 391ca021863948fe54d9db733140a30217a28005 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Fri, 29 Nov 2024 09:07:15 +0100 Subject: [PATCH] Refactor decrypt_pcd() --- src/process.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/process.rs b/src/process.rs index ff70c51..15bb27f 100644 --- a/src/process.rs +++ b/src/process.rs @@ -24,11 +24,20 @@ pub struct ProcessState { } impl ProcessState { - pub fn decrypt_pcd(&self) -> Value { - // TODO add real error management + pub fn decrypt_pcd(&self) -> anyhow::Result { let mut fields2plain = Map::new(); - let _ = self.encrypted_pcd.decrypt_fields(&self.keys, &mut fields2plain); - Value::Object(fields2plain) + let fields2commit = self.pcd_commitment.to_value_object()?; + self.encrypted_pcd.decrypt_fields(&fields2commit, &self.keys, &mut fields2plain)?; + Ok(Value::Object(fields2plain)) + } + + pub fn get_message_hash(&self, approval: bool) -> anyhow::Result { + let merkle_root = ::create_merkle_tree(&self.pcd_commitment)?.root().unwrap(); + if approval { + Ok(AnkHash::ValidationYes(AnkValidationYesHash::from_byte_array(merkle_root))) + } else { + Ok(AnkHash::ValidationNo(AnkValidationNoHash::from_byte_array(merkle_root))) + } } fn list_modified_fields(&self, previous_state: Option<&ProcessState>) -> Vec {