generic_array/
impl_zeroize.rs1use 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}