arnaucube
arnaucube/arkeddsaPublic Self-hosted repository
derive ark-serde
kilic onurkilic1004@gmail.com
Tue, 30 Jul 2024 14:38:53 +0300
commit

90bb17584bc8b1fce1e30a0494b70c06bcf18d5e

parent

251918ba7fffb53a624152e7eed4ccf9ed294cef

2 files changed, 8 insertions(+), 6 deletions(-)

jump to
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,