dashu_int/third_party/
zeroize.rs1use zeroize::Zeroize;
4
5use crate::{
6 buffer::Buffer,
7 repr::{Repr, TypedRepr},
8 IBig, UBig,
9};
10
11impl Zeroize for Buffer {
12 fn zeroize(&mut self) {
13 self.as_full_slice().zeroize();
14 self.truncate(0)
15 }
16}
17
18impl Zeroize for Repr {
19 fn zeroize(&mut self) {
20 self.as_full_slice().zeroize();
21 self.clone_from(&Repr::zero());
22 }
23}
24
25impl Zeroize for TypedRepr {
26 #[inline]
27 fn zeroize(&mut self) {
28 if let TypedRepr::Large(buffer) = self {
29 buffer.zeroize()
30 }
31 *self = TypedRepr::Small(0)
32 }
33}
34
35impl Zeroize for UBig {
36 #[inline]
37 fn zeroize(&mut self) {
38 self.0.zeroize()
39 }
40}
41
42impl Zeroize for IBig {
43 #[inline]
44 fn zeroize(&mut self) {
45 self.0.zeroize()
46 }
47}