ruvix-boot
RVF boot loading for the RuVix Cognition Kernel (ADR-087).
Overview
This crate provides the RVF (RuVector Format) boot loading infrastructure. The kernel boot follows a strict five-stage process with cryptographic verification at every step.
Boot Sequence (ADR-087 Section 9.1)
| Stage | Name | Description |
|---|---|---|
| 0 | Hardware Init | Platform-specific initialization (mocked in Phase A) |
| 1 | RVF Verify | Parse manifest + ML-DSA-65 signature verification |
| 2 | Object Create | Create root task, regions, queues, witness log |
| 3 | Component Mount | Mount components + distribute capabilities |
| 4 | First Attestation | Boot attestation to witness log |
Stage 0 ──► Stage 1 ──► Stage 2 ──► Stage 3 ──► Stage 4
Hardware Signature Objects Mount Attest
Init Verify Create Components
Security Properties (SEC-001)
Critical security fixes implemented:
- Signature failure: PANIC IMMEDIATELY, no fallback boot path
- Root task capability drop: After Stage 3, root task drops to minimum set
- Witness log integrity: Append-only, cryptographically linked
Components
BootLoader
Main boot orchestrator:
use ;
let config = default;
let mut loader = new;
// Load and verify the RVF boot image
let manifest_bytes = include_bytes!;
let signature = include_bytes!;
// This will PANIC if signature verification fails (SEC-001)
loader.boot?;
RvfManifest
RVF package manifest structure:
use ;
let manifest = RvfManifest ;
SignatureVerifier
ML-DSA-65 signature verification (NIST FIPS 204):
use ;
let verifier = new;
match verifier.verify
WitnessLog
Append-only witness log for boot attestation:
use ;
let config = default;
let mut log = new;
// Record boot attestation
let entry = log.append_boot_attestation?;
CapabilityDistribution
Post-boot capability restriction:
use ;
// Root task drops to minimum capabilities after mount
let distribution = new;
distribution.restrict_root_task?;
Constants
use ;
assert_eq!; // NIST FIPS 204
assert_eq!;
assert_eq!; // 1 MiB
assert_eq!;
Features
std(default): Enable standard library supportalloc: Enable alloc crate supportmetrics: Enable boot metrics collectionverbose: Enable verbose boot loggingbaremetal: Phase B bare metal (no std, no libc)
Integration with RuVix
This crate integrates with:
ruvix-types: Core type definitionsruvix-cap: Boot capability set and initial capabilitiesruvix-region: Region creation for kernel objectsruvix-proof: Boot attestation generation
License
MIT OR Apache-2.0