[noise] snow: a rust implementation based on screech

Jake McGinty me at jake.su
Wed Mar 15 09:40:17 PDT 2017


Hey Noise-makers,

I’ve been working on a Rust implementation of Noise I’m calling Snow, which I’ve been using in a toy onion router project.

https://github.com/mcginty/snow

I didn’t realize that Sopium had also been undertaking a similar effort in parallel, so I present this project for additional discussion.

Basic design goals:
- An intuitive builder and session state machine that makes a best effort to prevent vulnerabilities caused by implementation human-error.
- Utilize Rust’s features to painlessly consume and free old key material during state transitions.
- Swappable crypto providers, sane defaults (similar to the original screech).

TODO:
- Fully zero-allocation (right now the crypto providers are still allocated on the heap).
- Finish feature completeness (XXfallback, HFS)

It’s still rough around the edges, but will be very happy for any notes and feedback!

~Jake



More information about the Noise mailing list