use sha2::{Sha256, Digest};
use crate::vault::vault_structs::VaultComponents;
pub fn verify_cia_signature(vault: &VaultComponents) -> Result<bool, String> {
let metadata_bytes = bincode::serialize(&vault.metadata)
.map_err(|e| format!("❌ Failed to serialize metadata: {e}"))?;
let mut hasher = Sha256::new();
hasher.update(&metadata_bytes);
hasher.update(&vault.ciphertext);
hasher.update(&vault.iv);
hasher.update(&vault.salt);
let expected_hash = hasher.finalize();
let expected_hex = hex::encode(expected_hash);
Ok(expected_hex == vault.cia_signature)
}