libp2p-noise 0.6.0

Cryptographic handshake protocol using the noise framework.

Noise protocol framework support for libp2p.

Note: This crate is still experimental and subject to major breaking changes both on the API and the wire protocol.

This crate provides libp2p_core::InboundUpgrade and libp2p_core::OutboundUpgrade implementations for various noise handshake patterns (currently IK, IX, and XX) over a particular choice of DH key agreement (currently only X25519).

All upgrades produce as output a pair, consisting of the remote's static public key and a NoiseOutput which represents the established cryptographic session with the remote, implementing tokio_io::AsyncRead and tokio_io::AsyncWrite.

Usage

Example:

use libp2p_core::{identity, Transport};
use libp2p_tcp::TcpConfig;
use libp2p_noise::{Keypair, X25519, NoiseConfig};

# fn main() {
let id_keys = identity::Keypair::generate_ed25519();
let dh_keys = Keypair::<X25519>::new().into_authentic(&id_keys).unwrap();
let noise = NoiseConfig::xx(dh_keys);
let transport = TcpConfig::new().with_upgrade(noise);
// ...
# }