From 90bb17584bc8b1fce1e30a0494b70c06bcf18d5e Mon Sep 17 00:00:00 2001 From: kilic Date: Tue, 30 Jul 2024 14:38:53 +0300 Subject: [PATCH] derive ark-serde --- src/eddsa.rs | 12 +++++++----- src/signature.rs | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/eddsa.rs b/src/eddsa.rs index 4244a5c..bbee01e 100644 --- a/src/eddsa.rs +++ b/src/eddsa.rs @@ -8,6 +8,7 @@ use ark_ec::{ AffineRepr, }; use ark_ff::PrimeField; +use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; use digest::Digest; use digest::OutputSizeUser; use rand_core::CryptoRngCore; @@ -42,15 +43,11 @@ impl SecretKey { } } -#[derive(Copy, Clone, Debug)] /// `PublicKey` is EdDSA signature verification key +#[derive(Copy, Clone, Debug, CanonicalSerialize, CanonicalDeserialize)] pub struct PublicKey(Affine); impl PublicKey { - pub fn point(&self) -> &Affine { - &self.0 - } - pub fn xy(&self) -> (&TE::BaseField, &TE::BaseField) { self.as_ref().xy().unwrap() } @@ -94,6 +91,11 @@ where Ok(signing_key) } + pub fn from_bytes(bytes: [u8; 32]) -> Result { + let secret_key = SecretKey::from_bytes(bytes); + Self::new::(&secret_key) + } + pub fn generate(rng: &mut impl CryptoRngCore) -> Result { let mut secret_key = SecretKey([0; 32]); rng.fill_bytes(&mut secret_key.0); diff --git a/src/signature.rs b/src/signature.rs index ea093d2..65ea776 100644 --- a/src/signature.rs +++ b/src/signature.rs @@ -3,8 +3,8 @@ use ark_ec::twisted_edwards::TECurveConfig; use ark_serialize::CanonicalDeserialize; use ark_serialize::CanonicalSerialize; -#[derive(Clone, Copy, Debug)] /// `SignatureComponents` contains the realized parts of a signature +#[derive(Copy, Clone, Debug, CanonicalSerialize, CanonicalDeserialize)] pub struct Signature { r: Affine, s: TE::ScalarField,