[noise] snow: a rust implementation based on screech
me at jake.su
Wed Mar 15 09:40:17 PDT 2017
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