derive ark-serde
kilic onurkilic1004@gmail.com
Tue, 30 Jul 2024 14:38:53 +0300
2 files changed,
8 insertions(+),
6 deletions(-)
M
src/eddsa.rs
→
src/eddsa.rs
@@ -8,6 +8,7 @@ twisted_edwards::{Affine, TECurveConfig},
AffineRepr, }; use ark_ff::PrimeField; +use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; use digest::Digest; use digest::OutputSizeUser; use rand_core::CryptoRngCore;@@ -42,15 +43,11 @@ Self(bytes)
} } -#[derive(Copy, Clone, Debug)] /// `PublicKey` is EdDSA signature verification key +#[derive(Copy, Clone, Debug, CanonicalSerialize, CanonicalDeserialize)] pub struct PublicKey<TE: TECurveConfig>(Affine<TE>); impl<TE: TECurveConfig> PublicKey<TE> { - pub fn point(&self) -> &Affine<TE> { - &self.0 - } - pub fn xy(&self) -> (&TE::BaseField, &TE::BaseField) { self.as_ref().xy().unwrap() }@@ -92,6 +89,11 @@ public_key: PublicKey(public_key),
}; Ok(signing_key) + } + + pub fn from_bytes<D: Digest>(bytes: [u8; 32]) -> Result<Self, Error> { + let secret_key = SecretKey::from_bytes(bytes); + Self::new::<D>(&secret_key) } pub fn generate<D: Digest>(rng: &mut impl CryptoRngCore) -> Result<Self, Error> {
M
src/signature.rs
→
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<TE: TECurveConfig + Clone> { r: Affine<TE>, s: TE::ScalarField,