mix_link

Crates.iomix_link
lib.rsmix_link
version0.1.0
sourcesrc
created_at2018-10-15 18:38:16.187325
updated_at2021-01-23 19:05:33.228852
descriptionmessage oriented noise based cryptographic link layer for mixnets
homepagehttps://github.com/sphinx-cryptography/mix_link
repositoryhttps://github.com/sphinx-cryptography/mix_link
max_upload_size
id90344
size638,830
David Stainton (david415)

documentation

https://docs.rs/mix_link/

README

mix_link

This crate provides a Noise Protocol Framework based cryptographic link layer wire protocol for constructing mix networks.

warning

This code has not been formally audited. Use it at your own risk!

details

This wire protocol is designed to construct mix networks. You can read the design specification document here:

However note that I've change the prologue value (our protocol version number) to 1 instead of 0 to differentiate it from the older version which used NewHope Simple. We now use the newer KEM, Kyber.

This cryptographic link layer protocol uses Noise_XXhfs_25519+Kyber1024_ChaChaPoly_BLAKE2b. You can read about the XX handshake pattern here in the Noise Protocol specification document:

However you'll also want to understand our hybrid forward secrecy protocol modification using the Kyber post-quantum key encapsulation mechanism. Please see "KEM-based Hybrid Forward Secrecy for Noise":

Usage

To import mix_link, add the following to the dependencies section of your project's Cargo.toml:

mix_link = "^0.1.0"

Then import the crate as:

extern crate mix_link;

acknowledgments

Thanks to Yawning Angel for the design of this wire protocol. Thanks to Daan Sprenkels for implementing Kyber1024 HFS for Snow.

license

GNU AFFERO GENERAL PUBLIC LICENSE

Commit count: 77

cargo fmt