sensitive/auxiliary.rs
1//! Auxiliary functions
2
3/// Securely zero‐out memory
4///
5/// # Safety
6///
7/// `addr` must be [valid](std::ptr#safety) for writes and properly aligned.
8pub unsafe fn zero<T>(addr: *mut T, count: usize) {
9 debug_assert_eq!(addr.align_offset(std::mem::align_of::<T>()), 0);
10 std::intrinsics::volatile_set_memory(addr, 0, count);
11}