Skip to main content

ruint/support/
zeroize.rs

1//! Support for the [`zeroize`](https://crates.io/crates/zeroize) crate.
2//!
3//! Currently only encodes to/from a big-endian byte array.
4
5#![cfg(feature = "zeroize")]
6#![cfg_attr(docsrs, doc(cfg(feature = "zeroize")))]
7
8use crate::{Bits, Uint};
9use zeroize::Zeroize;
10
11impl<const BITS: usize, const LIMBS: usize> Zeroize for Uint<BITS, LIMBS> {
12    fn zeroize(&mut self) {
13        unsafe {
14            // SAFETY: Setting limbs to zero always safe.
15            self.as_limbs_mut().zeroize();
16        }
17    }
18}
19
20impl<const BITS: usize, const LIMBS: usize> Zeroize for Bits<BITS, LIMBS> {
21    fn zeroize(&mut self) {
22        self.as_uint_mut().zeroize();
23    }
24}