From 1b728159ebf553e25d43d0393fe769946d185e61 Mon Sep 17 00:00:00 2001 From: zz-sol Date: Wed, 13 May 2026 18:11:16 -0400 Subject: [PATCH] impl zeroize for signing key (#16) --- curve25519/solana-ed25519/src/ed_sigs/signing_key.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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")