[noise] snow: a rust implementation based on screech
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.
> 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!
> Noise mailing list
> Noise at moderncrypto.org
More information about the Noise