sanitization 2.0.3

Dependency-free no_std secret memory sanitization with safe defaults and an explicit volatile wipe backend.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#![cfg(miri)]

use sanitization::{ct::ConstantTimeEq, SecretBytes};

#[test]
fn default_comparison_uses_the_portable_backend_under_downstream_miri() {
    let left = SecretBytes::<4>::from_array([1, 2, 3, 4]);
    let same = SecretBytes::<4>::from_array([1, 2, 3, 4]);
    let different = SecretBytes::<4>::from_array([1, 2, 3, 0]);

    assert!(left
        .ct_eq(&same)
        .declassify("test verifies downstream Miri equality"));
    assert!(!left
        .ct_eq(&different)
        .declassify("test verifies downstream Miri inequality"));
}