[][src]Crate susyp2p_noise

Noise protocol framework support for susyp2p.

This crate provides susyp2p_core::InboundUpgrade and susyp2p_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 susyp2p_core::Transport;
use susyp2p_tcp::TcpConfig;
use susyp2p_noise::{Keypair, X25519, NoiseConfig};

let keys = Keypair::<X25519>::new();
let transport = TcpConfig::new().with_upgrade(NoiseConfig::xx(keys));
// ...

Modules

rt1

Futures performing 1 round trip.

rt15

Futures performing 1.5 round trips.

Structs

Keypair

DH keypair.

NoiseConfig

The protocol upgrade configuration.

NoiseOutput

A noise session to a remote.

ProtocolParams

The parameters of a Noise protocol, consisting of a choice for a handshake pattern as well as DH, cipher and hash functions.

PublicKey

DH public key.

X25519

A X25519 key.

Enums

IK

Type tag for the IK handshake pattern.

IX

Type tag for the IX handshake pattern.

NoiseError

susyp2p_noise error type.

XX

Type tag for the XX handshake pattern.

Traits

Protocol

A Noise protocol over DH keys of type C. The choice of C determines the protocol parameters for each handshake pattern.