[noise] snow: a rust implementation based on screech

Jake McGinty me at jake.su
Mon May 29 11:05:45 PDT 2017


I had a little streak of catchup at a conference recently, so now added:

- Support for the new rev32 PSK spec (even multiple PSKs - go crazy) and re-keying (fallback support coming soon).

- Feature-gated support for the muuuuch faster crypto implementations from *ring* when applicable. (Throughput on my laptop for AESGCM_SHA256 goes from 60MB/s to 2500MB/s for example). You can run `cargo bench —features ring-resolver` to check your own mileage.


> On Mar 16, 2017, at 12:40 AM, Jake McGinty <me at jake.su> wrote:
> 
> 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
> 
> _______________________________________________
> Noise mailing list
> Noise at moderncrypto.org
> https://moderncrypto.org/mailman/listinfo/noise



More information about the Noise mailing list