pqrascv-hardware 1.0.0-rc.5

Hardware-rooted trust and distributed verifier consensus for PQ-RASCV
Documentation
use crate::policy::{HardwarePolicyContext, HardwarePolicyError, HardwarePolicyRule};

#[allow(clippy::too_many_lines, clippy::collapsible_match)]
pub fn evaluate_domain_rule(
    rule: &HardwarePolicyRule,
    ctx: &HardwarePolicyContext<'_>,
) -> Result<bool, HardwarePolicyError> {
    match rule {
        HardwarePolicyRule::RequireCheckpointIntegrity => {
            if ctx.checkpoint.is_none() {
                return Err(HardwarePolicyError::CheckpointIntegrityMissing);
            }
        }
        HardwarePolicyRule::RequireTimelineCompaction => {
            if ctx.compacted_timeline.is_none() {
                return Err(HardwarePolicyError::TimelineCompactionMissing);
            }
        }
        _ => return Ok(false),
    }
    Ok(true)
}