derive ark-serde

This commit is contained in:
kilic
2024-07-30 14:38:53 +03:00
parent 251918ba7f
commit 90bb17584b
2 changed files with 8 additions and 6 deletions

View File

@@ -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<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()
}
@@ -94,6 +91,11 @@ where
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> {
let mut secret_key = SecretKey([0; 32]);
rng.fill_bytes(&mut secret_key.0);

View File

@@ -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,