extern crate distrand;
extern crate hmac;
extern crate rand;
extern crate sha2;
use distrand::{Exchange, Secret};
use hmac::Hmac;
use sha2::Sha512;
fn main() {
let mut rng = rand::thread_rng();
let secret: Secret<u64, Hmac<Sha512>> = Secret::new(&mut rng, 5);
let commit = secret.commit().unwrap();
let mut exchange = Exchange::new();
exchange.insert("myself", commit).unwrap();
let mut reveal = exchange.reveal().unwrap();
reveal.insert("myself", secret).unwrap();
let value = reveal.get().unwrap();
println!("Constant Value: {}", value);
}