diff --git a/curve25519/solana-ed25519/src/ed_sigs/signing_key.rs b/curve25519/solana-ed25519/src/ed_sigs/signing_key.rs index 563b887..450e9af 100644 --- a/curve25519/solana-ed25519/src/ed_sigs/signing_key.rs +++ b/curve25519/solana-ed25519/src/ed_sigs/signing_key.rs @@ -56,7 +56,7 @@ pub type SecretKey = [u8; SECRET_KEY_LENGTH]; /// An Ed25519 signing key. /// /// This is also called a secret key by other implementations. -#[derive(Copy, Clone, Zeroize)] +#[derive(Copy, Clone)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[cfg_attr(feature = "serde", serde(from = "SerdeHelper"))] #[cfg_attr(feature = "serde", serde(into = "SerdeHelper"))] @@ -67,6 +67,15 @@ pub struct SigningKey { vk: VerificationKey, } +impl Zeroize for SigningKey { + fn zeroize(&mut self) { + self.seed.zeroize(); + self.s.zeroize(); + self.prefix.zeroize(); + self.vk.zeroize(); + } +} + impl core::fmt::Debug for SigningKey { fn fmt(&self, fmt: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { fmt.debug_struct("SigningKey")