Zeroize

Trait Zeroize 

Source
pub trait Zeroize {
    // Required method
    fn zeroize(&mut self);
}
Expand description

Trait to zeroize a memory buffer. Trait for securely erasing types from memory

Required Methods§

Source

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§

Source§

impl Zeroize for String

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for __m128

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for __m128d

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for __m128i

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for CompressedEdwardsY

Source§

fn zeroize(&mut self)

Reset this CompressedEdwardsY to the compressed form of the identity element.

Source§

impl Zeroize for EdwardsPoint

Source§

fn zeroize(&mut self)

Reset this CompressedEdwardsPoint to the identity element.

Source§

impl Zeroize for MontgomeryPoint

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for MontgomeryPoint

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for CompressedRistretto

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for RistrettoPoint

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for Scalar

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for Scalar

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for ExpandedSecretKey

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for SecretKey

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for Transcript

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for Keypair

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for MiniSecretKey

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for SecretKey

Source§

fn zeroize(&mut self)

Source§

impl Zeroize for Seed

Source§

fn zeroize(&mut self)

Source§

impl<'a, Z> Zeroize for IterMut<'a, Z>
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for Option<Z>
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 1]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 2]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 3]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 4]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 5]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 6]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 7]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 8]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 9]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 10]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 11]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 12]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 13]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 14]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 15]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 16]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 17]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 18]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 19]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 20]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 21]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 22]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 23]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 24]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 25]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 26]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 27]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 28]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 29]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 30]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 31]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 32]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 33]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 34]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 35]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 36]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 37]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 38]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 39]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 40]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 41]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 42]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 43]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 44]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 45]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 46]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 47]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 48]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 49]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 50]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 51]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 52]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 53]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 54]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 55]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 56]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 57]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 58]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 59]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 60]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 61]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 62]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 63]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for [Z; 64]
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Source§

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().

Source§

fn zeroize(&mut self)

Source§

impl<Z> Zeroize for Box<[Z]>
where Z: Zeroize,

Source§

fn zeroize(&mut self)

Unlike Vec, Box<[Z]> cannot reallocate, so we can be sure that we are not leaving values on the heap.

Source§

impl<Z> Zeroize for Vec<Z>
where Z: Zeroize,

Source§

fn zeroize(&mut self)

“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.

Implementors§

Source§

impl<Z> Zeroize for Zeroizing<Z>
where Z: Zeroize,

Source§

impl<Z> Zeroize for Z
where Z: DefaultIsZeroes,