1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mod bliss;
pub use self::bliss::{ Bliss, PrivateKey, PublicKey, SignatureData };
pub trait Signature {
type PrivateKey;
type PublicKey;
type Signature;
fn sk_length() -> usize;
fn pk_length() -> usize;
fn sign_length() -> usize;
fn keygen() -> (Self::PrivateKey, Self::PublicKey);
fn signature(sk: &Self::PrivateKey, data: &[u8]) -> Self::Signature;
fn verify(pk: &Self::PublicKey, sign: &Self::Signature, data: &[u8]) -> bool;
}