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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
§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<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> 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> 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> 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> 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> Zeroize for (A, B, C, D)
impl<A, B, C, D> Zeroize for (A, B, C, D)
§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 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 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 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.
§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().
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 Zwhere
Z: DefaultIsZeroes,
impl<Z> Zeroize for Zeroizing<Z>where
Z: Zeroize,
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