Trait Zeroize
pub trait Zeroize {
// Required method
fn zeroize(&mut self);
}Expand description
Trait for securely erasing values from memory.
Required Methods§
fn zeroize(&mut self)
fn zeroize(&mut self)
Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not “optimized away” by the compiler.
Implementations on Foreign Types§
§impl<A, B, C, D> Zeroize for (A, B, C, D)
impl<A, B, C, D> Zeroize for (A, B, C, D)
§impl<A, B, C, D, E> Zeroize for (A, B, C, D, E)
impl<A, B, C, D, E> Zeroize for (A, B, C, D, E)
§impl<A, B, C, D, E, F> Zeroize for (A, B, C, D, E, F)
impl<A, B, C, D, E, F> Zeroize for (A, B, C, D, E, F)
§impl<A, B, C, D, E, F, G> Zeroize for (A, B, C, D, E, F, G)
impl<A, B, C, D, E, F, G> Zeroize for (A, B, C, D, E, F, G)
§impl<A, B, C, D, E, F, G, H> Zeroize for (A, B, C, D, E, F, G, H)
impl<A, B, C, D, E, F, G, H> Zeroize for (A, B, C, D, E, F, G, H)
§impl<A, B, C, D, E, F, G, H, I> Zeroize for (A, B, C, D, E, F, G, H, I)
impl<A, B, C, D, E, F, G, H, I> Zeroize for (A, B, C, D, E, F, G, H, I)
§impl<A, B, C, D, E, F, G, H, I, J> Zeroize for (A, B, C, D, E, F, G, H, I, J)
impl<A, B, C, D, E, F, G, H, I, J> Zeroize for (A, B, C, D, E, F, G, H, I, J)
§impl<Size> Zeroize for EncodedPoint<Size>where
Size: ModulusSize,
Available on crate feature zeroize only.
impl<Size> Zeroize for EncodedPoint<Size>where
Size: ModulusSize,
zeroize only.§impl<Z> Zeroize for [Z]where
Z: DefaultIsZeroes,
impl<Z> Zeroize for [Z]where
Z: DefaultIsZeroes,
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().
§impl<Z> Zeroize for PhantomData<Z>
PhantomData is always zero sized so provide a Zeroize implementation.
impl<Z> Zeroize for PhantomData<Z>
PhantomData is always zero sized so provide a Zeroize implementation.
§impl<Z> Zeroize for MaybeUninit<Z>
Impl Zeroize on MaybeUninit types.
impl<Z> Zeroize for MaybeUninit<Z>
Impl Zeroize on MaybeUninit types.
This fills the memory with zeroes.
Note that this ignore invariants that Z might have, because
MaybeUninit removes all invariants.
§impl<Z> Zeroize for [MaybeUninit<Z>]
Impl Zeroize on slices of MaybeUninit types.
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.
Implementors§
impl<C> Zeroize for NonZeroScalar<C>where
C: CurveArithmetic,
impl<P, const N: usize> Zeroize for Fp<P, N>where
P: FpConfig<N>,
impl<T, N> Zeroize for GenericArray<T, N>where
T: Zeroize,
N: ArrayLength<T>,
impl<Z> Zeroize for Zeroizing<Z>where
Z: Zeroize,
impl<Z> Zeroize for Zwhere
Z: DefaultIsZeroes,
impl<const LIMBS: usize> Zeroize for DynResidue<LIMBS>
zeroize only.NOTE: this does not zeroize the parameters, in order to maintain some form of type consistency