Curve25519 signatures like in the early Axolotl

Import

rs use ed25519_axolotl::{ random_bytes, str_to_vec32, vec32_to_str, KeyPair };

Generate New Key Pair

```rs // seed: Vec // let keys = KeyPair::new(Some(seed)); let keys = KeyPair::new(None);

println!("{}", keys); ```

Fast Signature

let msg = strtovec32("hello e25519 axolotl".tostring()); let signature = KeyPair::fastsignature( keys.prvk, msg.clone(), Some(random_bytes(64)) );

assert_eq!(KeyPair::verify(keys.pubk, msg, signature), true); println!("ok"); ```

Full Signature

let msg = strtovec32("hello e25519 axolotl".tostring()); let signature = KeyPair::fullsignature( keys.prvk, msg.clone(), Some(random_bytes(64)) );

assert_eq!(KeyPair::verify(keys.pubk, msg, signature), true); println!("ok"); ```

Decode Message

let msg = strtovec32("hello e25519 axolotl".tostring()); let mut signmsg = KeyPair::fullsignature( keys.prvk, msg.clone(), Some(randombytes(64)) ); let decodedmsg = KeyPair::decodemessage(keys.pubk, &mut sign_msg);

asserteq!(msg, decodedmsg); println!("ok"); ```

Credits