[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.


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).

- 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!


More information about the Noise mailing list