pub trait Zeroize {
// Required method
fn zeroize(&mut self);
}
Expand description
Trait for securely erasing values from memory.
Required Methods§
Implementations on Foreign Types§
source§impl<Z> Zeroize for PhantomData<Z>
impl<Z> Zeroize for PhantomData<Z>
PhantomData
is always zero sized so provide a Zeroize
implementation.
source§impl<A, B, C, D> Zeroize for (A, B, C, D)where
A: Zeroize,
B: Zeroize,
C: Zeroize,
D: Zeroize,
impl<A, B, C, D> Zeroize for (A, B, C, D)where A: Zeroize, B: Zeroize, C: Zeroize, D: Zeroize,
source§impl<A> Zeroize for (A,)where
A: Zeroize,
impl<A> Zeroize for (A,)where A: Zeroize,
Generic implementation of Zeroize for tuples up to 10 parameters.
source§impl<Z> Zeroize for [MaybeUninit<Z>]
impl<Z> Zeroize for [MaybeUninit<Z>]
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 zeroes.
Note that this ignore invariants that Z
might have, because
MaybeUninit
removes all invariants.
source§impl<A, B, C, D, E, F, G, H, I, J> Zeroize for (A, B, C, D, E, F, G, H, I, J)where
A: Zeroize,
B: Zeroize,
C: Zeroize,
D: Zeroize,
E: Zeroize,
F: Zeroize,
G: Zeroize,
H: Zeroize,
I: Zeroize,
J: Zeroize,
impl<A, B, C, D, E, F, G, H, I, J> Zeroize for (A, B, C, D, E, F, G, H, I, J)where A: Zeroize, B: Zeroize, C: Zeroize, D: Zeroize, E: Zeroize, F: Zeroize, G: Zeroize, H: Zeroize, I: Zeroize, J: Zeroize,
source§impl<A, B, C, D, E> Zeroize for (A, B, C, D, E)where
A: Zeroize,
B: Zeroize,
C: Zeroize,
D: Zeroize,
E: Zeroize,
impl<A, B, C, D, E> Zeroize for (A, B, C, D, E)where A: Zeroize, B: Zeroize, C: Zeroize, D: Zeroize, E: Zeroize,
source§impl<A, B, C, D, E, F> Zeroize for (A, B, C, D, E, F)where
A: Zeroize,
B: Zeroize,
C: Zeroize,
D: Zeroize,
E: Zeroize,
F: Zeroize,
impl<A, B, C, D, E, F> Zeroize for (A, B, C, D, E, F)where A: Zeroize, B: Zeroize, C: Zeroize, D: Zeroize, E: Zeroize, F: Zeroize,
source§impl<A, B, C, D, E, F, G, H> Zeroize for (A, B, C, D, E, F, G, H)where
A: Zeroize,
B: Zeroize,
C: Zeroize,
D: Zeroize,
E: Zeroize,
F: Zeroize,
G: Zeroize,
H: Zeroize,
impl<A, B, C, D, E, F, G, H> Zeroize for (A, B, C, D, E, F, G, H)where A: Zeroize, B: Zeroize, C: Zeroize, D: Zeroize, E: Zeroize, F: Zeroize, G: Zeroize, H: Zeroize,
source§impl<A, B, C, D, E, F, G> Zeroize for (A, B, C, D, E, F, G)where
A: Zeroize,
B: Zeroize,
C: Zeroize,
D: Zeroize,
E: Zeroize,
F: Zeroize,
G: Zeroize,
impl<A, B, C, D, E, F, G> Zeroize for (A, B, C, D, E, F, G)where A: Zeroize, B: Zeroize, C: Zeroize, D: Zeroize, E: Zeroize, F: Zeroize, G: Zeroize,
source§impl Zeroize for PhantomPinned
impl Zeroize for PhantomPinned
PhantomPinned
is zero sized so provide a Zeroize implementation.
source§impl<Z> Zeroize for [Z]where
Z: DefaultIsZeroes,
impl<Z> Zeroize for [Z]where Z: DefaultIsZeroes,
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()
.