Expand description
§openentropy-core
Your computer is a hardware noise observatory.
openentropy-core is the core entropy harvesting library that extracts randomness
from 47 unconventional hardware sources — clock jitter, DRAM row buffer timing,
CPU speculative execution, Bluetooth RSSI, NVMe latency, and more.
§Quick Start
use openentropy_core::EntropyPool;
// Auto-detect all available sources and create a pool
let pool = EntropyPool::auto();
// Get conditioned random bytes
let random_bytes = pool.get_random_bytes(256);
assert_eq!(random_bytes.len(), 256);
// Check pool health
let health = pool.health_report();
println!("{}/{} sources healthy", health.healthy, health.total);§Architecture
Sources → Pool (concatenate) → Conditioning → Output
Three output modes:
- Sha256 (default): SHA-256 conditioning mixes all source bytes with state, counter, timestamp, and OS entropy. Cryptographically strong output.
- VonNeumann: debiases raw bytes without destroying noise structure.
- Raw (
get_raw_bytes): source bytes pass through unchanged — no hashing, no whitening, no mixing between sources.
Raw mode preserves the actual hardware noise signal for researchers studying device entropy characteristics. Most QRNG APIs (ANU, Outshift) run DRBG post-processing that destroys the raw hardware signal. We don’t.
Every source implements the EntropySource trait. The EntropyPool
collects from all registered sources and concatenates their byte streams.
Re-exports§
pub use conditioning::ConditioningMode;pub use conditioning::MinEntropyReport;pub use conditioning::QualityReport;pub use conditioning::condition;pub use conditioning::grade_min_entropy;pub use conditioning::min_entropy_estimate;pub use conditioning::quick_min_entropy;pub use conditioning::quick_quality;pub use conditioning::quick_shannon;pub use platform::detect_available_sources;pub use platform::platform_info;pub use pool::EntropyPool;pub use pool::HealthReport;pub use pool::SourceHealth;pub use pool::SourceInfoSnapshot;pub use session::MachineInfo;pub use session::SessionConfig;pub use session::SessionMeta;pub use session::SessionSourceAnalysis;pub use session::SessionWriter;pub use session::detect_machine_info;pub use source::EntropySource;pub use source::Platform;pub use source::Requirement;pub use source::SourceCategory;pub use source::SourceInfo;
Modules§
- analysis
- Comprehensive entropy source analysis beyond NIST min-entropy.
- conditioning
- Centralized entropy conditioning module.
- platform
- Platform detection and source discovery.
- pool
- Multi-source entropy pool with health monitoring.
- session
- Session recording for entropy collection research.
- source
- Abstract entropy source trait and runtime state.
- sources
- All 47 entropy source implementations.
Constants§
- VERSION
- Library version (from Cargo.toml).