use rxwing::{decaps, encaps, generate_keypair, SHAREDSECRET,
XWINGCIPHERTEXT, XWINGDECAPSKEY, XWINGENCAPSKEY};
fn main() {
let mut ek: XWINGENCAPSKEY = Default::default();
let mut dk: XWINGDECAPSKEY = Default::default();
let mut ct: XWINGCIPHERTEXT = Default::default();
let mut key_b: SHAREDSECRET = Default::default();
let mut key_a: SHAREDSECRET = Default::default();
generate_keypair(&mut ek, &mut dk);
encaps(&mut key_b, &mut ct, &ek);
decaps(&mut key_a, &ct, &dk);
assert_eq!(key_a, key_b, "X-Wing equal key test");
print!("Our shared secret is: ");
for i in 0..32 {
let j = key_b.ss_hat[i];
print!("{}", format!("{j:02x}").as_str());
}
print!("\n");
println!("But you should not print out secrets like this!");
}