lcpfs 2026.1.102

LCP File System - A ZFS-inspired copy-on-write filesystem for Rust
//! LunaVault encrypted container support.
//!
//! Provides VeraCrypt-compatible encrypted volumes with:
//! - File-hosted volumes
//! - Hidden volumes (plausible deniability)
//! - Multiple encryption algorithms (AES, Serpent, Twofish, cascades)
//! - Post-quantum hybrid encryption (ML-KEM-1024)

/// Cryptographic operations for vault encryption.
pub mod crypto;
/// Block device abstraction for mounted vaults.
pub mod device;
mod lunavault;
/// Type definitions for LunaVault volumes.
pub mod types;
/// Volume creation and management.
pub mod volume;

// Re-export core types from the types module (canonical source)
pub use types::{
    ENCRYPTED_HEADER_SIZE,
    EncryptionAlgorithm,
    FilesystemType,
    HEADER_SIZE,
    HashAlgorithm,
    LUNA_MAGIC,
    MASTER_KEY_SIZE,
    MIN_VOLUME_SIZE,
    PIM_MULTIPLIER,
    PQC_HEADER_EXT_SIZE,
    PQC_HYBRID_CT_BYTES,
    PQC_HYBRID_PK_BYTES,
    PQC_HYBRID_SIG_BYTES,
    PQC_HYBRID_SIG_PK_BYTES,
    PQC_MAGIC,
    // PQC extension types
    PqcHeaderExtension,
    SALT_SIZE,
    SECONDARY_KEY_SIZE,
    SECTOR_SIZE,
    TRUE_MAGIC,
    VERA_MAGIC,
    VaultError,
    VaultFlags,
    VaultHeader,
    VaultMount,
    VaultMountOptions,
};

// Re-export crypto functions
pub use crypto::derive_header_key;

// Re-export volume operations
pub use volume::*;

// Re-export block device
pub use device::{VaultBlockDevice, VaultBlockDeviceStats};

// Re-export LunaVault API struct and options
pub use lunavault::{LunaVault, LunaVaultOptions, MountOptions};