#noise-protocol #susyp2p #protocols #handshake #framework #io

susyp2p-noise

Cryptographic handshake protocol using the noise framework

2 unstable releases

0.5.0 May 4, 2019
0.4.0 May 4, 2019

#6 in #susyp2p


Used in susyp2p

MIT license

620KB
11K SLoC

Central repository for work on susyp2p

dependency status

This repository is the central place for Rust development of the susyp2p spec.

Warning: While we are trying our best to be compatible with other susyp2p implementations, we cannot guarantee that this is the case considering the lack of a precise susyp2p specifications.

Documentation

How to use the library?

Where to ask questions?

  • In the Rust section of https://discuss.susyp2p.io.
  • In the #susyp2p IRC channel on freenode.
  • By opening an issue in this repository.

Notable users

(open a pull request if you want your project to be added here)


lib.rs:

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));
// ...

Dependencies

~16MB
~369K SLoC