From a298344178e53b0e5f9781e5fe73452668f673c4 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Mon, 19 Apr 2021 11:31:53 -0400 Subject: [PATCH] Add optional zeroize support --- Cargo.toml | 1 + src/lib.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index cd4c2aa..4d7b5d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,6 +46,7 @@ rand_core = "0.4.0" unicode-normalization = { version = "=0.1.9", optional = true } rand = { version = "0.6.0", optional = true } serde = { version = "1.0", default-features = false, optional = true } +zeroize = {version = "1.2", optional = true} [dev-dependencies] rand = { version = "0.6.0", optional = false } diff --git a/src/lib.rs b/src/lib.rs index 79cb52f..51f7226 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -53,6 +53,11 @@ use bitcoin_hashes::{sha256, Hash}; #[cfg(feature = "std")] use unicode_normalization::UnicodeNormalization; +#[cfg(feature = "zeroize")] +extern crate zeroize; +#[cfg(feature = "zeroize")] +use zeroize::Zeroize; + #[macro_use] mod internal_macros; mod language; @@ -160,6 +165,13 @@ pub struct Mnemonic { words: [u16; MAX_NB_WORDS], } +#[cfg(feature = "zeroize")] +impl Zeroize for Mnemonic { + fn zeroize(&mut self) { + self.words.zeroize() + } +} + serde_string_impl!(Mnemonic, "a BIP-39 Mnemonic Code"); impl Mnemonic {