pub trait Zeroize {
fn zeroize(&mut self);
}
Expand description
Trait for securely erasing types from memory
Zero out this object from memory using Rust intrinsics which ensure the
zeroization operation is not “optimized away” by the compiler.
“Best effort” zeroization for Vec
.
Ensures the entire capacity of the Vec
is zeroed. Cannot ensure that
previous reallocations did not leave values on the heap.
Unlike Vec
, Box<[Z]>
cannot reallocate, so we can be sure that we are not leaving
values on the heap.
Impl Zeroize
on slices of MaybeUninit types
This impl can eventually be optimized using an memset intrinsic,
such as core::intrinsics::volatile_set_memory
.
This fills the slice with zeros
Note that this ignore invariants that Z might have, because MaybeUninit removes all invariants.
Impl Zeroize
on slices of types that can be zeroized with Default
.
This impl can eventually be optimized using an memset intrinsic,
such as core::intrinsics::volatile_set_memory
. For that reason the blanket
impl on slices is bounded by DefaultIsZeroes
.
To zeroize a mut slice of Z: Zeroize
which does not impl
DefaultIsZeroes
, call iter_mut().zeroize()
.
Implement Zeroize
on arrays of types that impl Zeroize