Releases: mcginty/snow
v0.9.0
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 onrand
.
Full Changelog: v0.8.1...v0.9.0
v0.8.0
v0.7.2
v0.7.1
v0.7.0
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 implementsSend
- Added
is_my_turn
function inHandshakeState
. - Added the
dangerously_get_raw_split
method inHandshakeState
behind therisky-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
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 thefailure
crate. - AES-GCM is now only supported with the
ring
based resolver. Thanks to @BlackHoleFox we've finally removed the dependency onrust-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
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
This was a decently large refactor with some important security changes (rollback) and better documentation.
- The handshake state will rollback its internal
SymmetricState
ifread_message()
orwrite_message()
failed for any reason, so the state will not be left in a weird or potentially dangerous state. NoiseBuilder
is now justBuilder
.- All errors returned in snow are now a
SnowError
enum type. generate_private_key()
is nowgenerate_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.