Skip to main content

require_reliable

Macro require_reliable 

Source
macro_rules! require_reliable {
    ($outcome:expr, $name:expr) => { ... };
}
Expand description

Require measurement to be reliable (fail-closed).

Panics if unreliable. Returns TestResult if reliable.

§Example

use tacet::{TimingOracle, InputPair, require_reliable};

#[test]
fn test_aes_critical() {
    let inputs = InputPair::new(|| [0u8; 16], || rand::random());
    let outcome = TimingOracle::new().test(inputs, |data| encrypt(data));
    let result = require_reliable!(outcome, "test_aes_critical");
    assert!(result.leak_probability < 0.1);
}