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. Two sibling crates, namely noise-sodiumoxide and noise-rust-crypto, provide concrete implementations of the needed crypto primitives. They are wrappers around sodiumoxide and rust-crypto, respectively.

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

| | X25519 | AES-256-GCM | Chacha20-Poly1305 | SHA-256 | SHA-512 | BLAKE2s | BLAKE2b | |-------------|:------:|:-----------:|:-----------------:|:-------:|:-------:|:-------:|:-------:| | sodiumoxide | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | | 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.