diff --git a/src/lib.rs b/src/lib.rs index 036e36d..837b606 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,4 @@ #[cfg(feature = "naive")] pub mod naive; + +pub(crate) mod sig; diff --git a/src/naive/mod.rs b/src/naive/mod.rs index 139597f..0dfcbb7 100644 --- a/src/naive/mod.rs +++ b/src/naive/mod.rs @@ -1,2 +1,21 @@ +use crate::sig::KeyGen; +pub struct SigParams { + m: u16, + n: u16, + o: u16, + k: u16, + salt_bytes: u8, + digest_bytes: u8, + pk_seed_bytes: u8, +} +pub struct SigningKey { + v: VerifyKey, +} + +pub struct VerifyKey {} + +impl KeyGen for SigningKey { + fn gen(params: SigParams) -> Self {} +} diff --git a/src/sig.rs b/src/sig.rs index 90f6680..4627b7e 100644 --- a/src/sig.rs +++ b/src/sig.rs @@ -1,6 +1,8 @@ -pub trait Signer { - fn gen() -> Self; +pub trait KeyGen

{ + fn gen(params: P) -> Self; +} +pub trait Signer { fn sign(&self, msg: &[u8]) -> S; }