Noise-Rust

Crates.io Docs.rs Build Status

Implementation of the Noise Protocol Framework in Rust.

Status

Revision 34 is implemented.

Test vectors from cacophony and snow are successfully verified.

Philosophy

Documentation

Crates

This repository contains several crates. The noise-protocol crate contains the abstract implementation of the protocol framework. noise-rust-crypto provides concrete implementations of the needed crypto primitives. It is a wrapper for x25519-dalek and RustCrypto crates.

The following table shows what primitives each of these crates supports:

| | X25519 | AES-256-GCM | Chacha20-Poly1305 | SHA-256 | SHA-512 | BLAKE2s | BLAKE2b | |-------------|:------:|:-----------:|:-----------------:|:-------:|:-------:|:-------:|:-------:| | rust-crypto | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |

You can also plug in other primitive implementations by implementing the DH, Cipher and Hash traits.

no_std usage

The noise-protocol crate supports no_std, if default features are disabled.

License

Unlicense.