mirror of
https://github.com/arnaucube/arkeddsa.git
synced 2026-01-12 00:01:28 +01:00
derive ark-serde
This commit is contained in:
12
src/eddsa.rs
12
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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user