use crate::escrow::metadata::EscrowMetadata;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EscrowBlob {
pub recipient_quorum_id: String,
pub encapsulated_key: Vec<u8>,
pub ciphertext: Vec<u8>,
pub nonce: Vec<u8>,
pub aad: Vec<u8>,
pub metadata: EscrowMetadata,
}
impl EscrowBlob {
pub fn fingerprint(&self) -> [u8; 32] {
use sha2::{Digest, Sha256};
let mut h = Sha256::new();
h.update(self.recipient_quorum_id.as_bytes());
h.update(&self.encapsulated_key);
h.update(&self.ciphertext);
h.update(&self.nonce);
h.update(&self.aad);
let r = h.finalize();
let mut out = [0u8; 32];
out.copy_from_slice(&r);
out
}
}