use crate::ByteArray;
use zeroize::Zeroize;
impl Drop for ByteArray {
fn drop(&mut self) {
self.bytes.zeroize();
}
}
#[cfg(test)]
mod tests {
use crate::try_hex;
use zeroize::Zeroize;
#[test]
#[allow(unsafe_code)]
fn test_zeroize() {
unsafe {
let mut byte_array = try_hex!("deadbeef").unwrap();
let ptr = byte_array.bytes.as_ptr();
let zero_ptr = ptr;
let len = byte_array.len();
assert_eq!(*ptr, 0xde);
let ptr_1 = ptr.add(1);
assert_eq!(*ptr_1, 0xad);
let ptr_2 = ptr_1.add(1);
assert_eq!(*ptr_2, 0xbe);
let ptr_3 = ptr_2.add(1);
assert_eq!(*ptr_3, 0xef);
byte_array.bytes.zeroize();
for i in 0..len {
assert_eq!(*zero_ptr.add(i), 0x00, "panicked on index : {i}");
}
}
}
}