secure

Macro secure 

Source
macro_rules! secure {
    ([u8; $N:literal], $expr:expr $(,)?) => { ... };
    ($ty:ty, $expr:expr $(,)?) => { ... };
    (String, $expr:expr $(,)?) => { ... };
    (Vec<u8>, $expr:expr $(,)?) => { ... };
    (heap $ty:ty, $expr:expr $(,)?) => { ... };
}
Expand description

Creates a secret wrapper around the given value.

Supports fixed-size byte arrays and heap-allocated types like String and Vec<u8>.

§Examples

use secure_gate::secure;

// Fixed-size secret
let key = secure!([u8; 32], [42u8; 32]);
assert_eq!(key.expose_secret(), &[42u8; 32]);

// Heap-allocated secret
let pw = secure!(String, "hunter2".to_string());
assert_eq!(pw.expose_secret(), "hunter2");

// Alternative heap syntax
let data: secure_gate::Dynamic<Vec<u8>> = secure!(heap Vec<u8>, vec![1u8, 2u8, 3u8]);
assert_eq!(data.as_slice(), &[1u8, 2u8, 3u8]);