diff --git a/block-buffer/src/lib.rs b/block-buffer/src/lib.rs index 11a227cf..851aea51 100644 --- a/block-buffer/src/lib.rs +++ b/block-buffer/src/lib.rs @@ -49,7 +49,7 @@ use array::{ use core::{fmt, mem::MaybeUninit, ops::Add, ptr, slice}; #[cfg(feature = "zeroize")] -use zeroize::Zeroize; +use zeroize::{Zeroize, ZeroizeOnDrop}; mod read; mod sealed; @@ -441,3 +441,14 @@ impl Zeroize for BlockBuffer { self.pos.zeroize(); } } + +impl Drop for BlockBuffer { + #[inline] + fn drop(&mut self) { + #[cfg(feature = "zeroize")] + self.zeroize(); + } +} + +#[cfg(feature = "zeroize")] +impl ZeroizeOnDrop for BlockBuffer {}