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}