Async secret-handshake protocol (for Secure Scuttlebutt (SSB)).
```rust
use shs_async::*;
let stream = someasyncreadasyncwrite_stream();
let netid = NetworkId::SSBMAINNET; let (pk, sk) = server::generatelongterm_keypair();
let outcome = await!(server(stream, net_id, pk, sk));
// outcome
is:
// pub struct HandshakeOutcome {
// pub c2skey: ClientToServerKey,
// pub s2ckey: ServerToClientKey,
// pub c2snoncegen: ClientToServerNonceGen,
// pub s2cnoncegen: ServerToClientNonceGen,
// }
```
```rust
let outcome = await!(client(stream, netid, pk, sk, serverpk));
```