pub struct SpeculativeExecutionSource;Expand description
Measures timing variations from the CPU’s speculative execution engine. The branch predictor maintains per-address history that depends on ALL previously executed code. Mispredictions cause pipeline flushes (~15 cycle penalty on M4). By running data-dependent branches and measuring timing, we capture the predictor’s internal state which is influenced by all prior program activity on the core.
Trait Implementations§
Source§impl EntropySource for SpeculativeExecutionSource
impl EntropySource for SpeculativeExecutionSource
Source§fn info(&self) -> &SourceInfo
fn info(&self) -> &SourceInfo
Source metadata.
Source§fn is_available(&self) -> bool
fn is_available(&self) -> bool
Check if this source can operate on the current machine.
Source§fn collect(&self, n_samples: usize) -> Vec<u8> ⓘ
fn collect(&self, n_samples: usize) -> Vec<u8> ⓘ
Collect raw entropy samples. Returns a
Vec<u8> of up to n_samples bytes.Auto Trait Implementations§
impl Freeze for SpeculativeExecutionSource
impl RefUnwindSafe for SpeculativeExecutionSource
impl Send for SpeculativeExecutionSource
impl Sync for SpeculativeExecutionSource
impl Unpin for SpeculativeExecutionSource
impl UnsafeUnpin for SpeculativeExecutionSource
impl UnwindSafe for SpeculativeExecutionSource
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more