Skip to content

Commit 8622938

Browse files
committed
make it a feature
1 parent b4d0285 commit 8622938

File tree

11 files changed

+40
-13
lines changed

11 files changed

+40
-13
lines changed

blake2/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ crypto-mac = "0.8"
1818
digest = "0.9"
1919
opaque-debug = "0.3"
2020
subtle = { version = ">=2, <2.5", default-features = false }
21-
zeroize = { version = "1.5.7", features = ["zeroize_derive"] }
21+
zeroize = { version = "1.5.7", features = ["zeroize_derive"], default-features = false, optional = true }
2222

2323
[dev-dependencies]
2424
crypto-mac = { version = "0.8", features = ["dev"] }
@@ -40,6 +40,7 @@ blake2s = []
4040
# performance. This feature disables some inlining, improving the performance
4141
# of the portable implementation in that specific case.
4242
uninline_portable = []
43+
zeroize = ["zeroize/zeroize_derive"]
4344

4445
[package.metadata.docs.rs]
4546
all-features = true

blake2/src/blake2b.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ use digest::{
4444
generic_array::GenericArray,
4545
BlockInput, FixedOutputDirty, InvalidOutputSize, Reset, Update, VariableOutputDirty,
4646
};
47+
#[cfg(feature = "zeroize")]
4748
use zeroize::ZeroizeOnDrop;
4849

4950
pub(crate) type Word = u64;
@@ -109,7 +110,8 @@ pub fn blake2b(input: &[u8]) -> Hash {
109110
}
110111

111112
/// Blake2b instance with a fixed output.
112-
#[derive(Clone, Default, ZeroizeOnDrop)]
113+
#[derive(Clone, Default)]
114+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
113115
pub struct Blake2b {
114116
params: Params,
115117
state: State,
@@ -193,7 +195,8 @@ opaque_debug::implement!(Blake2b);
193195
digest::impl_write!(Blake2b);
194196

195197
/// Blake2b instance with a variable output.
196-
#[derive(Clone, Default, ZeroizeOnDrop)]
198+
#[derive(Clone, Default)]
199+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
197200
pub struct VarBlake2b {
198201
params: Params,
199202
state: State,

blake2/src/blake2b/backend.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod sse41;
99
use super::*;
1010
use arrayref::array_ref;
1111
use core::cmp;
12+
#[cfg(feature = "zeroize")]
1213
use zeroize::Zeroize;
1314

1415
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
@@ -139,6 +140,7 @@ impl Implementation {
139140
}
140141
}
141142

143+
#[cfg(feature = "zeroize")]
142144
impl Zeroize for Implementation {
143145
fn zeroize(&mut self) {
144146
// Nothing to do.
@@ -188,6 +190,7 @@ pub enum LastNode {
188190
No,
189191
}
190192

193+
#[cfg(feature = "zeroize")]
191194
impl Zeroize for LastNode {
192195
fn zeroize(&mut self) {
193196
// Nothing to do.

blake2/src/blake2b/params.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use super::{
33
};
44
use arrayref::array_refs;
55
use core::fmt;
6+
#[cfg(feature = "zeroize")]
67
use zeroize::ZeroizeOnDrop;
78

89
/// A parameter builder that exposes all the non-default BLAKE2 features.
@@ -29,7 +30,8 @@ use zeroize::ZeroizeOnDrop;
2930
/// // Or use those params to build an incremental State.
3031
/// let mut state = params.to_state();
3132
/// ```
32-
#[derive(Clone, ZeroizeOnDrop)]
33+
#[derive(Clone)]
34+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
3335
pub struct Params {
3436
pub(super) hash_length: u8,
3537
pub(super) key_length: u8,

blake2/src/blake2b/state.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use super::{backend, Count, Hash, Params, Word, BLOCKBYTES, OUTBYTES};
22
use arrayref::mut_array_refs;
33
use core::{cmp, fmt, mem::size_of};
44

5+
#[cfg(feature = "zeroize")]
56
use zeroize::ZeroizeOnDrop;
67

78
/// An incremental hasher for BLAKE2b.
@@ -21,7 +22,8 @@ use zeroize::ZeroizeOnDrop;
2122
/// state.update(b"bar");
2223
/// assert_eq!(blake2b(b"foobar"), state.finalize());
2324
/// ```
24-
#[derive(Clone, ZeroizeOnDrop)]
25+
#[derive(Clone)]
26+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
2527
pub struct State {
2628
pub(super) words: [Word; 8],
2729
pub(super) count: Count,

blake2/src/blake2bp.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ use crate::blake2b::{
2626
many, state, Count, Hash, Word, BLOCKBYTES, KEYBYTES, OUTBYTES,
2727
};
2828
use core::{cmp, fmt, mem::size_of};
29+
#[cfg(feature = "zeroize")]
2930
use zeroize::ZeroizeOnDrop;
3031

3132
pub(crate) const DEGREE: usize = 4;
@@ -59,7 +60,8 @@ pub fn blake2bp(input: &[u8]) -> Hash {
5960
/// use blake2::blake2bp;
6061
/// let mut state = blake2bp::Params::new().hash_length(32).to_state();
6162
/// ```
62-
#[derive(Clone, ZeroizeOnDrop)]
63+
#[derive(Clone)]
64+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
6365
pub struct Params {
6466
hash_length: u8,
6567
key_length: u8,
@@ -207,7 +209,8 @@ impl fmt::Debug for Params {
207209
/// dfa3205f7f7f71e4f0673d25fa82a368488911f446bccd323af3ab03f53e56e5";
208210
/// assert_eq!(expected, &hash.to_hex());
209211
/// ```
210-
#[derive(Clone, ZeroizeOnDrop)]
212+
#[derive(Clone)]
213+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
211214
pub struct State {
212215
leaf_words: [[Word; 8]; DEGREE],
213216
root_words: [Word; 8],

blake2/src/blake2s.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ use digest::{
4343
generic_array::GenericArray,
4444
BlockInput, FixedOutputDirty, InvalidOutputSize, Reset, Update, VariableOutputDirty,
4545
};
46+
#[cfg(feature = "zeroize")]
4647
use zeroize::ZeroizeOnDrop;
4748

4849
pub(crate) type Word = u32;
@@ -98,7 +99,8 @@ pub fn blake2s(input: &[u8]) -> Hash {
9899
}
99100

100101
/// Blake2s instance with a fixed output.
101-
#[derive(Clone, Default, ZeroizeOnDrop)]
102+
#[derive(Clone, Default)]
103+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
102104
pub struct Blake2s {
103105
params: Params,
104106
state: State,
@@ -182,7 +184,8 @@ opaque_debug::implement!(Blake2s);
182184
digest::impl_write!(Blake2s);
183185

184186
/// Blake2s instance with a variable output.
185-
#[derive(Clone, Default, ZeroizeOnDrop)]
187+
#[derive(Clone, Default)]
188+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
186189
pub struct VarBlake2s {
187190
params: Params,
188191
state: State,

blake2/src/blake2s/backend.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod sse41;
99
use super::*;
1010
use arrayref::array_ref;
1111
use core::cmp;
12+
#[cfg(feature = "zeroize")]
1213
use zeroize::Zeroize;
1314

1415
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
@@ -137,6 +138,7 @@ impl Implementation {
137138
}
138139
}
139140

141+
#[cfg(feature = "zeroize")]
140142
impl Zeroize for Implementation {
141143
fn zeroize(&mut self) {
142144
// Nothing to do.
@@ -186,6 +188,7 @@ pub enum LastNode {
186188
No,
187189
}
188190

191+
#[cfg(feature = "zeroize")]
189192
impl Zeroize for LastNode {
190193
fn zeroize(&mut self) {
191194
// Nothing to do.

blake2/src/blake2s/params.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use super::{
33
};
44
use arrayref::array_refs;
55
use core::fmt;
6+
#[cfg(feature = "zeroize")]
67
use zeroize::ZeroizeOnDrop;
78

89
/// A parameter builder that exposes all the non-default BLAKE2 features.
@@ -29,7 +30,8 @@ use zeroize::ZeroizeOnDrop;
2930
/// // Or use those params to build an incremental State.
3031
/// let mut state = params.to_state();
3132
/// ```
32-
#[derive(Clone, ZeroizeOnDrop)]
33+
#[derive(Clone)]
34+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
3335
pub struct Params {
3436
pub(super) hash_length: u8,
3537
pub(super) key_length: u8,

blake2/src/blake2s/state.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use super::{backend, Count, Hash, Params, Word, BLOCKBYTES, OUTBYTES};
22
use arrayref::mut_array_refs;
33
use core::{cmp, fmt, mem::size_of};
4+
#[cfg(feature = "zeroize")]
45
use zeroize::ZeroizeOnDrop;
56

67
/// An incremental hasher for BLAKE2s.
@@ -20,7 +21,8 @@ use zeroize::ZeroizeOnDrop;
2021
/// state.update(b"bar");
2122
/// assert_eq!(blake2s(b"foobar"), state.finalize());
2223
/// ```
23-
#[derive(Clone, ZeroizeOnDrop)]
24+
#[derive(Clone)]
25+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
2426
pub struct State {
2527
pub(super) words: [Word; 8],
2628
pub(super) count: Count,

blake2/src/blake2sp.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ use crate::blake2s::{
2626
many, state, Count, Hash, Word, BLOCKBYTES, KEYBYTES, OUTBYTES,
2727
};
2828
use core::{cmp, fmt, mem::size_of};
29+
#[cfg(feature = "zeroize")]
2930
use zeroize::ZeroizeOnDrop;
3031

3132
pub(crate) const DEGREE: usize = 8;
@@ -58,7 +59,8 @@ pub fn blake2sp(input: &[u8]) -> Hash {
5859
/// use blake2::blake2sp;
5960
/// let mut state = blake2sp::Params::new().hash_length(32).to_state();
6061
/// ```
61-
#[derive(Clone, ZeroizeOnDrop)]
62+
#[derive(Clone)]
63+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
6264
pub struct Params {
6365
hash_length: u8,
6466
key_length: u8,
@@ -214,7 +216,8 @@ impl fmt::Debug for Params {
214216
/// let expected = "268120e51df583c61d6bfb7915f1c8ead299696c42f413092cd0b2247e1a388d";
215217
/// assert_eq!(expected, &hash.to_hex());
216218
/// ```
217-
#[derive(Clone, ZeroizeOnDrop)]
219+
#[derive(Clone)]
220+
#[cfg_attr(feature = "zeroize", derive(ZeroizeOnDrop))]
218221
pub struct State {
219222
leaf_words: [[Word; 8]; DEGREE],
220223
root_words: [Word; 8],

0 commit comments

Comments
 (0)