Skip to main content

Crate pqrascv_hardware

Crate pqrascv_hardware 

Source
Expand description

§pqrascv-hardware

Hardware trust validation layer for PQ-RASCV v2.

This crate provides the typed abstractions, verification logic, and policy rules for hardware-rooted attestation. It is the bridge between raw hardware evidence (TPM quotes, DICE CDIs, TDX reports) and the policy engine.

§Module Overview

ModulePurpose
digestTyped digest model — eliminates SHA-256/SHA3-256 ambiguity
pcrPCR semantic specification — canonical slot meanings
counterHardware monotonic counter evidence
backendHardware backend trait and evidence types
tpm_verifyTPM 2.0 quote structural verification
policyHardware-aware policy rules
audit_traceCryptographically linked, append-only lineage of evaluation events
invariantsSystem-wide assertions to prevent Byzantine violations and equivocation
consistency_checkerFull divergence drift validation for the global audit trace

§Trust Model

Hardware (TPM/DICE/TDX/SEV-SNP)
  └── HardwareRootOfTrust::collect_evidence(nonce)
        └── HardwareEvidence { backend_type, pcr_bank, counter, ... }
              └── TpmQuoteVerifier::verify_structure(...)
                    └── HardwarePolicyEngine::evaluate(...)
                          └── Ok(()) → evidence is trustworthy

§Feature Flags

FeatureEffect
std (default)Enables std::error::Error on error types
unsafe-test-backendEnables HardwareBackendType::TestOnly — NEVER in production

§Security Invariants

  1. HardwareBackendType::TestOnly is only constructible with unsafe-test-backend.
  2. All PCR digests in TypedPcrBank must be SHA3-256 before policy evaluation.
  3. TpmQuoteVerifier checks nonce binding FIRST, before any other validation.
  4. HardwarePolicyEngine::hardware_production() rejects non-hardware-rooted backends.
  5. CounterEvidence::HardwareMonotonic is the only counter variant accepted by RequireHardwareMonotonicCounter.

Re-exports§

pub use backend::BackendSpecificEvidence;
pub use backend::DiceEvidence;
pub use backend::HardwareBackendType;
pub use backend::HardwareCapabilities;
pub use backend::HardwareError;
pub use backend::HardwareEvidence;
pub use backend::HardwareRootOfTrust;
pub use backend::NitroEnclaveEvidence;
pub use backend::SevSnpEvidence;
pub use backend::TdxEvidence;
pub use backend::TpmClockInfo;
pub use backend::TpmIdentity;
pub use backend::TpmQuoteEvidence;
pub use baseline::ExpectedPcr;
pub use baseline::PcrBaseline;
pub use baseline::PolicyVersion;
pub use boot_chain::BootChainEvidence;
pub use continuous_attestation::AttestationSession;
pub use continuous_attestation::SessionError;
pub use counter::CounterEvidence;
pub use digest::DigestAlgorithm;
pub use digest::TypedDigest;
pub use distributed_consensus::ConsensusDecision;
pub use distributed_consensus::ConsensusEvaluation;
pub use distributed_consensus::VerifierVote;
pub use drift::DriftDetectionEngine;
pub use drift::DriftPolicyMode;
pub use drift::DriftReport;
pub use drift::DriftSeverity;
pub use governance::GovernanceAction;
pub use governance::GovernanceError;
pub use governance::GovernanceLog;
pub use governance::GovernanceRecord;
pub use ima_integration::ImaEvidence;
pub use ima_integration::ImaMeasurement;
pub use ima_integration::ImaParseError;
pub use pcr::PcrMeasurement;
pub use pcr::PcrSemantic;
pub use pcr::SlotSemanticMismatch;
pub use pcr::TypedPcrBank;
pub use platform_profiles::PlatformClass;
pub use platform_profiles::PlatformProfile;
pub use platform_profiles::PlatformVendor;
pub use platform_profiles::PlatformVerificationReport;
pub use platform_profiles::RuntimeVerificationReport;
pub use policy::HardwarePolicyContext;
pub use policy::HardwarePolicyEngine;
pub use policy::HardwarePolicyError;
pub use policy::HardwarePolicyRule;
pub use policy_federation::FederatedPolicyEpoch;
pub use policy_federation::FederatedPolicyError;
pub use policy_federation::FederatedPolicyRegistry;
pub use profiles::sovereign_bitcoin_node_profile;
pub use reputation::VerifierReputation;
pub use runtime_attestation::RuntimeAttestationEvidence;
pub use runtime_attestation::RuntimeMeasurement;
pub use runtime_attestation::RuntimeMeasurementDomain;
pub use runtime_attestation::RuntimePolicyEpoch;
pub use runtime_drift::RuntimeDriftEngine;
pub use runtime_drift::RuntimeDriftReport;
pub use runtime_drift::RuntimeDriftSeverity;
pub use runtime_integrity::RuntimeIntegrityEvidence;
pub use secure_boot::SecureBootEvidence;
pub use secure_boot::SecureBootState;
pub use timeline_reconciliation::TimelineConflict;
pub use timeline_reconciliation::TimelineConflictType;
pub use timeline_reconciliation::TimelineReconciler;
pub use timeline_reconciliation::TimelineReconciliationReport;
pub use tpm_verify::TpmQuoteVerifier;
pub use tpm_verify::TpmVerifyError;
pub use transparency_log::TransparencyEvent;
pub use trust_domains::TrustDomain;
pub use trust_domains::TrustEvaluation;
pub use trust_domains::VerificationDecisionReason;
pub use verifier_federation::FederationError;
pub use verifier_federation::QuorumPolicy;
pub use verifier_federation::VerifierFederation;
pub use verifier_identity::CertificateError;
pub use verifier_identity::IdentityError;
pub use verifier_identity::VerifierCapability;
pub use verifier_identity::VerifierCertificate;
pub use verifier_identity::VerifierIdentity;
pub use verifier_timeline::AttestationEvent;
pub use verifier_timeline::AttestationTimeline;
pub use verifier_timeline::TimelineValidationError;
pub use verifier_transparency::TransparencyLogError;
pub use verifier_transparency::VerifierEventType;
pub use verifier_transparency::VerifierTransparencyEvent;
pub use verifier_transparency::VerifierTransparencyLog;
pub use workload_integrity::WorkloadIdentity;
pub use workload_integrity::WorkloadIntegrityEvidence;

Modules§

adaptive_sync
attested_node_report
Attested Node Report
audit_trace
Append-only audit lineage for deterministic reconstruction.
backend
Hardware backend trait and type definitions.
baseline
PCR Baseline Management
bitcoin_node_identity
Sovereign Bitcoin Node Identity
bitcoin_node_timeline
Bitcoin Node Event Timeline
bitcoin_policy_profiles
Deterministic Bitcoin Node Policy Profiles
bitcoin_runtime_monitor
Bitcoin Runtime Monitor
bitcoin_workload_integrity
Bitcoin Workload Integrity
boot_chain
Boot Chain Evidence
byzantine_quorum
Byzantine Quorum Semantics
canonicalization
checkpointing
Rolling Integrity Checkpoints
consistency_checker
Full-system consistency validation pass.
continuous_attestation
Continuous Attestation Sessions
counter
Hardware monotonic counter evidence.
cross_federation
Cross-Federation Reconciliation
delta_attestation
Delta Attestation Serialization & Hash Chaining
deployment_reference
Sovereign Deployment Reference Modeling
deterministic_replay
digest
Typed digest model — eliminates algorithm ambiguity in measurements.
disaster_recovery
distributed_consensus
Distributed Consensus Engine
drift
Drift Detection Engine
eclipse_resistance
ek_framework
Endorsement Key (EK) validation framework.
epoch_key_binding
Epoch Key Binding
equivocation
Anti-Equivocation Detection
federation_liveness
federation_migration
federation_snapshot
federation_sync
Signed Federation Synchronization
federation_time
Hybrid Logical Clocks and Federation Time Semantics
federation_topology
Topology-Aware Federation Semantics
federation_transport
Verifier Federation Synchronization Messaging
gossip_protocol
governance
Federated Governance Model
governance_continuity
Governance Continuity Tracking
hashing
ima_integration
Linux IMA/Appraisal Integration
invariants
Global system invariants and Byzantine assumptions.
network_governance
node_attestation_session
Node Attestation Session Lifecycle
partition_detection
partition_healing
pcr
PCR semantic specification — canonical slot meanings and typed measurements.
peer_reputation
platform_profiles
Platform Profiles
policy
policy_federation
Federated Policy Epoch Management
pq_transport
Post-Quantum Federation Transport
profiles
Predefined Platform Profiles
quorum_reformation
recovery_governance
recovery_lineage
reputation
Verifier Reputation Tracking (AUDIT ONLY)
retention_governance
Governed Retention Semantics
retention_policy
Bounded Verifier Retention Semantics
runtime_attestation
Runtime Attestation Evidence
runtime_drift
Runtime Drift Analysis
runtime_integrity
Runtime Integrity Evidence
runtime_stream
Incremental Runtime Integrity Streaming
secure_boot
Secure Boot Policy Semantics
snapshot_sync
state_reconstruction
stream_reconciliation
Cross-Verifier Stream Reconciliation
temporal_ambiguity
Temporal Ambiguity Evidence
timeline_compaction
Timeline Compaction Semantics
timeline_reconciliation
Cross-Verifier Timeline Reconciliation
tpm_structures
Strongly typed TPM 2.0 structure parsing.
tpm_verify
Cryptographically sound TPM 2.0 quote verification.
transparency_log
Transparency Log
trust_domains
Trust Domains Modeling
verifier_federation
Verifier Federation Model
verifier_identity
Verifier Identity Model
verifier_orchestrator
Distributed Verifier Orchestrator
verifier_rejoin
verifier_revocation
Verifier Revocation Semantics
verifier_timeline
Verifier Timeline state tracking
verifier_transparency
Verifier Transparency Accountability Log
workload_integrity
Workload Integrity Abstractions