Skip to content

Commit 90bf2c8

Browse files
committed
make it a feature
1 parent b4d0285 commit 90bf2c8

File tree

9 files changed

+30
-9
lines changed

9 files changed

+30
-9
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/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,

0 commit comments

Comments
 (0)