use commonware_cryptography::{
ed25519::PrivateKey,
handshake::{
dial_end, dial_start, listen_end, listen_start, Context, Error, RecvCipher, SendCipher,
},
PrivateKeyExt as _, Signer,
};
use criterion::criterion_main;
use rand::SeedableRng as _;
use rand_chacha::ChaCha8Rng;
mod handshake;
mod transport;
fn connect() -> Result<(SendCipher, RecvCipher), Error> {
let mut rng = ChaCha8Rng::seed_from_u64(0);
let dialer_crypto = PrivateKey::from_rng(&mut rng);
let listener_crypto = PrivateKey::from_rng(&mut rng);
let (d_state, msg1) = dial_start(
&mut rng,
Context::new(0, 0..1, dialer_crypto.clone(), listener_crypto.public_key()),
);
let (l_state, msg2) = listen_start(
&mut rng,
Context::new(0, 0..1, listener_crypto, dialer_crypto.public_key()),
msg1,
)?;
let (msg3, d_send, _) = dial_end(d_state, msg2)?;
let (_, l_recv) = listen_end(l_state, msg3)?;
Ok((d_send, l_recv))
}
criterion_main!(handshake::benches, transport::benches);