Peer A generate ephemeral ed25519 keypair and generate shared secret with couple (ephemeral_secret_key, B_public_key).
Encryption use aes256 or chacha20 (not yet determined) key derived from shared secret.
Peer b get shared secret with couple (B_secret_key, ephemeral_public_key)
For DH, i plan to use curve25519_dalek to generate agreement with one of the two keypairs that isn't ephemeral.