10 releases
0.2.0 | Nov 1, 2023 |
---|---|
0.2.0-rc1 | Apr 7, 2023 |
0.1.4 | Oct 17, 2022 |
0.1.3 | Apr 10, 2020 |
0.0.3 | Mar 2, 2017 |
#232 in Cryptography
3,227 downloads per month
Used in 14 crates
(8 directly)
51KB
1K
SLoC
Noise-Rust
Implementation of the Noise Protocol Framework in Rust.
Status
Revision 34 is implemented.
Test vectors from cacophony and snow are successfully verified.
Philosophy
- Simple: straightforward implementation, small amount of code, almost no
dependencies, supports
no_std
. Featureuse_alloc
can optionallly be used as an alternative to std. - Fast: static dispatch, no heap allocation necessary.
- Unopinionated: flexible, primitive API, does not dictate how it should be used.
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-ring | ✔ | ✔ | ✔ | ✔ | |||
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.
Dependencies
~69KB