generic_array/
impl_zeroize.rs

1use crate::{ArrayLength, GenericArray};
2
3use zeroize::{Zeroize, ZeroizeOnDrop};
4
5impl<Z: Zeroize, N: ArrayLength> Zeroize for GenericArray<Z, N> {
6    fn zeroize(&mut self) {
7        self.as_mut_slice().iter_mut().zeroize()
8    }
9}
10
11impl<Z: ZeroizeOnDrop, N: ArrayLength> ZeroizeOnDrop for GenericArray<Z, N> {}
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16
17    #[test]
18    fn test_zeroize() {
19        let mut array = GenericArray::<u8, typenum::U2>::default();
20        array[0] = 4;
21        array[1] = 9;
22        array.zeroize();
23        assert_eq!(array[0], 0);
24        assert_eq!(array[1], 0);
25    }
26}