From 6988f0bfaafce44550826acc6690fe0815e04633 Mon Sep 17 00:00:00 2001 From: kilic Date: Tue, 30 Jul 2024 14:43:16 +0300 Subject: [PATCH] allow to generate shared key --- src/eddsa.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/eddsa.rs b/src/eddsa.rs index bbee01e..9c9515b 100644 --- a/src/eddsa.rs +++ b/src/eddsa.rs @@ -140,6 +140,16 @@ where } } +impl SigningKey { + pub fn shared_key(&self, recipient: &PublicKey) -> [u8; 32] { + let (x, _) = self.secret_key.expand::(); + let shared_key: Affine = (*recipient.as_ref() * x).into(); + let mut data = Vec::new(); + shared_key.serialize_compressed(&mut data).unwrap(); + data[00..32].try_into().unwrap() + } +} + impl PublicKey where TE::BaseField: PrimeField + Absorb,