Skip to content

Releases: mcginty/snow

v0.9.0

03 Feb 07:59
Compare
Choose a tag to compare

This is a maintenance release, with the exception of some minor function signature changes where snow::Error is now the error type instead of ().

Changes

  • Updated all dependencies to latest
  • Cleaner error handling with fewer unwraps, thanks to @BlackHoleFox
  • Reduced number of dependencies for the crate by using curve25519-dalek directly and no longer depending on rand.

Full Changelog: v0.8.1...v0.9.0

v0.8.0

11 May 17:23
Compare
Choose a tag to compare

This change increases the minor version to avoid issues from updating underlying dependencies. It's otherwise quite minor of a change.

v0.7.2

14 Feb 11:47
Compare
Choose a tag to compare
v0.7.2

v0.7.1

06 Jul 13:57
Compare
Choose a tag to compare
  • Add missing checks to HandshakeState::read_message which would allow panics to happen if the read wasn't called in the correct order.
  • Updated RustCrypto crates.

v0.7.0

15 Jun 04:34
Compare
Choose a tag to compare

Major changes

  • Experimental post-quantum Hybrid Forward Secrecy, behind the hfs flag.
  • Added back AES-GCM support to the default pure-Rust crypto resolver.
  • Added XChaChaPoly support behind the xchachapoly flag.

Minor changes

  • Builder now implements Send
  • Added is_my_turn function in HandshakeState.
  • Added the dangerously_get_raw_split method in HandshakeState behind the risky-raw-split, for those who like the live on the wild side and want to deal with the split key material from a completed handshake manually.

Special thanks to @dsprenkels, @sdbondi, @michaelbeaumont, @Frando, @expenses, @BlackHoleFox, and @zserik for your contributions to this release!

As is always the case, there's always more to get into this release but it's been long enough that it seems like a good checkpoint, and we can continue re-hauling the API for 0.8.

v0.6.0

14 Jul 14:25
Compare
Choose a tag to compare

Snow 0.6 was focused on simplification. We managed to net negative 500 lines of code since 0.5.

Major Changes

  • Removed Session, which was a wrapper around the handshake and transport state structs. This approach provides better compiler-time guarantees for code correctness.
  • Snow's Error enum no longer uses the failure crate.
  • AES-GCM is now only supported with the ring based resolver. Thanks to @BlackHoleFox we've finally removed the dependency on rust-crypto, which is no longer maintained.
  • Finally upgrade to Rust 2018.

A special thanks to @stusmall, @geogriff-signal, and @Leo-LB for contributing to this release.

P.S., Facebook: I see you're using snow for your new cryptocurrency. Please don't screw us all over.

v0.4.2

30 Jan 05:30
v0.4.2
Compare
Choose a tag to compare

The largest change in 0.3 -> 0.4 is the addition of a stateless transport mode, which exposes an API to manage nonces on your own, as opposed to the traditional behavior of noise where nonces are internally managed.

This is particularly useful for using noise over lossy pipes (UDP multimedia streaming, etc.).

v0.3.0

23 Jul 08:18
Compare
Choose a tag to compare

This was a decently large refactor with some important security changes (rollback) and better documentation.

  • The handshake state will rollback its internal SymmetricState if read_message() or write_message() failed for any reason, so the state will not be left in a weird or potentially dangerous state.
  • NoiseBuilder is now just Builder.
  • All errors returned in snow are now a SnowError enum type.
  • generate_private_key() is now generate_keypair() in the builder.
  • Crypto types must implement Send + Sync now.
  • The default resolver is now optional if you implement your own resolver and didn't want it.

v0.2.0

21 Jun 09:45
Compare
Choose a tag to compare
  • Refactor of the organization of resolvers
  • A few potential performance improvements

v0.1.12

29 May 01:19
Compare
Choose a tag to compare

Maintenance release to provide documentation while docs.rs is broken for this crate.