diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-04-10 20:58:48 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-04-10 20:58:48 -0400 |
commit | 23587615cf71008c2c3b3c6cba416a7798e29a27 (patch) | |
tree | 39a3b2dc070e540b9d289392360155f4ab2e3341 /src | |
parent | 59c7c079ca9452da0992159b2a85f2734f71ecdd (diff) | |
download | rbw-23587615cf71008c2c3b3c6cba416a7798e29a27.tar.gz rbw-23587615cf71008c2c3b3c6cba416a7798e29a27.zip |
more robust zeroization
Diffstat (limited to 'src')
-rw-r--r-- | src/locked.rs | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/locked.rs b/src/locked.rs index 52678dc..68cea8c 100644 --- a/src/locked.rs +++ b/src/locked.rs @@ -1,3 +1,5 @@ +use zeroize::Zeroize; + pub struct Vec { data: Box<arrayvec::ArrayVec<[u8; 4096]>>, _lock: region::LockGuard, @@ -31,17 +33,11 @@ impl Vec { pub fn truncate(&mut self, len: usize) { self.data.truncate(len); } - - pub fn shred(&mut self) { - self.data.truncate(0); - self.data.extend(std::iter::repeat(0)); - self.data.truncate(0); - } } impl Drop for Vec { fn drop(&mut self) { - self.shred(); + self.data.as_mut().zeroize(); } } |