1234567891011121314151617181920212223242526272829303132333435363738 |
- use cmz::*;
- use curve25519_dalek::ristretto::RistrettoPoint;
- use group::Group;
- use rand_core::RngCore;
- use sha2::Sha512;
- CMZ! { Basic<RistrettoPoint> :
- attr1,
- attr2
- }
- #[test]
- fn test_basic() {
- let mut rng = rand::thread_rng();
- cmz_group_init(RistrettoPoint::hash_from_bytes::<Sha512>(
- b"CMZ Generator A",
- ));
- let (privkey, pubkey) = Basic::gen_keys(&mut rng);
- // Serialize and deserialize
- let privkey_bytes = bincode::serialize(&privkey).unwrap();
- let pubkey_bytes = bincode::serialize(&pubkey).unwrap();
- let privkey_serde = bincode::deserialize::<CMZPrivkey<RistrettoPoint>>(&privkey_bytes).unwrap();
- let pubkey_serde = bincode::deserialize::<CMZPubkey<RistrettoPoint>>(&pubkey_bytes).unwrap();
- assert!(privkey == privkey_serde);
- assert!(pubkey == pubkey_serde);
- let basic_cred = Basic::using_privkey(&privkey_serde);
- let basic_cred_bytes = bincode::serialize(&basic_cred).unwrap();
- println!("{:#?}", basic_cred);
- println!("{:#?}", basic_cred_bytes);
- }
|