Skip to content

Commit 24bdf30

Browse files
committed
Use ZeroizeOnDrop exclusively
1 parent 4570d80 commit 24bdf30

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

x25519-dalek/src/x25519.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use rand_core::CryptoRng;
2020
use rand_core::RngCore;
2121

2222
#[cfg(feature = "zeroize")]
23-
use zeroize::Zeroize;
23+
use zeroize::{Zeroize, ZeroizeOnDrop};
2424

2525
/// A Diffie-Hellman public key
2626
///
@@ -70,8 +70,7 @@ impl AsRef<[u8]> for PublicKey {
7070
/// are no serialization methods defined. This means that [`EphemeralSecret`]s can only be
7171
/// generated from fresh randomness where the compiler statically checks that the resulting
7272
/// secret is used at most once.
73-
#[cfg_attr(feature = "zeroize", derive(Zeroize))]
74-
#[cfg_attr(feature = "zeroize", zeroize(drop))]
73+
#[cfg_attr(feature = "zeroize", derive(Zeroize, ZeroizeOnDrop))]
7574
pub struct EphemeralSecret(pub(crate) [u8; 32]);
7675

7776
impl EphemeralSecret {
@@ -131,8 +130,7 @@ impl<'a> From<&'a EphemeralSecret> for PublicKey {
131130
/// secret keys are never reused, which can have very serious security
132131
/// implications for many protocols.
133132
#[cfg(feature = "reusable_secrets")]
134-
#[cfg_attr(feature = "zeroize", derive(Zeroize))]
135-
#[cfg_attr(feature = "zeroize", zeroize(drop))]
133+
#[cfg_attr(feature = "zeroize", derive(Zeroize, ZeroizeOnDrop))]
136134
#[derive(Clone)]
137135
pub struct ReusableSecret(pub(crate) [u8; 32]);
138136

@@ -192,8 +190,7 @@ impl<'a> From<&'a ReusableSecret> for PublicKey {
192190
/// implications for many protocols.
193191
#[cfg(feature = "static_secrets")]
194192
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
195-
#[cfg_attr(feature = "zeroize", derive(Zeroize))]
196-
#[cfg_attr(feature = "zeroize", zeroize(drop))]
193+
#[cfg_attr(feature = "zeroize", derive(Zeroize, ZeroizeOnDrop))]
197194
#[derive(Clone)]
198195
pub struct StaticSecret([u8; 32]);
199196

@@ -270,8 +267,7 @@ impl AsRef<[u8]> for StaticSecret {
270267
///
271268
/// Each party computes this using their [`EphemeralSecret`] or [`StaticSecret`] and their
272269
/// counterparty's [`PublicKey`].
273-
#[cfg_attr(feature = "zeroize", derive(Zeroize))]
274-
#[cfg_attr(feature = "zeroize", zeroize(drop))]
270+
#[cfg_attr(feature = "zeroize", derive(Zeroize, ZeroizeOnDrop))]
275271
pub struct SharedSecret(pub(crate) MontgomeryPoint);
276272

277273
impl SharedSecret {

0 commit comments

Comments
 (0)