Browse Source

derive ark-serde

main
kilic 8 months ago
parent
commit
90bb17584b
2 changed files with 8 additions and 6 deletions
  1. +7
    -5
      src/eddsa.rs
  2. +1
    -1
      src/signature.rs

+ 7
- 5
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<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);

+ 1
- 1
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,

Loading…
Cancel
Save