Noise protocol framework in rust

Build Tests Lints codecov

crates.io Docs Apache-2 licensed

Overview

The library provides pure rust implementation of Noise protocol framework with minimal dependencies made in functional style, where a specific Noise scheme is constructed as a concrete type (like Noise_XK<Secp256,ChaChaPoly,Sha256>).

The library is a part of rust cyphernet suite.

Manifest

yaml Name: noise-framework Type: Library Kind: Free software License: Apache-2.0 Language: Rust Compiler: 1.65 Author: Maxim Orlovsky Maintained: Cyphernet DAO, Switzerland Maintainers: Maxim Orlovsky: GitHub: @dr-orlovsky GPG: EAE730CEC0C663763F028A5860094BAF18A26EC9 SSH: BoSGFzbyOKC7Jm28MJElFboGepihCpHop60nS8OoG/A EMail: dr@orlovsky.ch Alexis Sellier: GitHub: @cloudhead SSH: iTDjRHSIaoL8dpHbQ0mv+y0IQqPufGl2hQwk4TbXFlw

Features

Currently, the library supports following handshake patterns and construction primitives: - All interactive handshake fundamental patterns: NN, NK, NX, XN, XK, XX, KN, KK, KX, IN, IK, IX - Streaming cipher ChaCha20Poly1305 - Elliptic curves Secp256k1 and Edward25519 - Digest functions SHA2-256, SHA2-512, SHA3-256, SHA3-512, BLAKE3

The library currently DOES NOT provide: - Other AEAD ciphers than ChaCha20Poly1305; - Support for pre-shared secret keys (PSK); - Interactive handshake deferred patterns.

Documentation

API reference documentation for the library can be accessed at https://docs.rs/noise-framework/.

Licensing

The libraries are distributed on the terms of Apache 2.0 opensource license. See LICENCE file for the license details.