Skip to content

Commit 67468ff

Browse files
authored
feat(zeroize): added zeorizing to Felt (#100)
1 parent 9cf1f56 commit 67468ff

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

crates/starknet-types-core/Cargo.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ serde = { version = "1", optional = true, default-features = false, features = [
2424
lambdaworks-crypto = { version = "0.10.0", default-features = false, optional = true }
2525
parity-scale-codec = { version = "3.6", default-features = false, optional = true }
2626
lazy_static = { version = "1.5", default-features = false, optional = true }
27+
zeroize = { version = "1.8.1", default-features = false, optional = true }
2728

2829
[features]
2930
default = ["std", "serde", "curve", "num-traits"]
@@ -34,8 +35,9 @@ std = [
3435
"num-integer/std",
3536
"serde?/std",
3637
"lambdaworks-crypto?/std",
38+
"zeroize?/std",
3739
]
38-
alloc = []
40+
alloc = ["zeroize?/alloc"]
3941
curve = []
4042
hash = ["dep:lambdaworks-crypto"]
4143
arbitrary = ["std", "dep:arbitrary"]
@@ -44,6 +46,7 @@ serde = ["alloc", "dep:serde"]
4446
prime-bigint = ["dep:lazy_static"]
4547
num-traits = []
4648
papyrus-serialization = ["std"]
49+
zeroize = ["dep:zeroize"]
4750

4851
[dev-dependencies]
4952
proptest = "1.5"

crates/starknet-types-core/src/felt/mod.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,13 @@ mod errors {
10571057
}
10581058
}
10591059

1060+
#[cfg(feature = "zeroize")]
1061+
mod zeroing {
1062+
use super::Felt;
1063+
1064+
impl zeroize::DefaultIsZeroes for Felt {}
1065+
}
1066+
10601067
#[cfg(test)]
10611068
mod test {
10621069
use super::alloc::{format, string::String, vec::Vec};
@@ -1839,4 +1846,14 @@ mod test {
18391846
assert_eq!(Felt::from_bytes_be(&bytes), d);
18401847
}
18411848
}
1849+
1850+
#[cfg(feature = "zeroize")]
1851+
#[test]
1852+
fn zeroing_felt() {
1853+
use zeroize::Zeroize;
1854+
1855+
let mut felt = Felt::from_hex_unchecked("0x01");
1856+
felt.zeroize();
1857+
assert_eq!(felt, Felt::ZERO);
1858+
}
18421859
}

0 commit comments

Comments
 (0)