Releases: mcginty/snow
v0.10.0
Quick Summary
snow
is now no_std
-friendly, with only one required dependency (subtle
) now if you bring your own cryptographic provider, thank you @complexspaces!
This release also sees some breaking API changes in the builder to further prevent misuse/abuse - more builder functions now return Result<Self, Error>
instead of Self
.
The P-256 curve is now also available as a non-default feature for those of you needing more curves in your life.
Finally, this release transitioned the snow codebase to Rust 2024 and has a new MSRV of 1.85.
New
- Add support for NIST P-256 curve by @AlfioEmanueleFresta in #185
no_std
support withalloc
by @jmlepisto #183
Improvements
- Removed dependency on
rand
by @complexspaces in #193 - Update dead docs link for forming NoiseParams strings by @thombles in #129
- Fix documentation reference to parameters in examples/simple.rs by @okdistribute in #113
- Update various links by @robyoder in #151
- Fix nonce incrementing in stateful transport to match the specification by @complexspaces in #152
- s/Ed448/Curve448/ by @dconnolly in #155
- curve25519_dalek 4 by @kayabaNerve in #161
- Bump aes-gcm and chacha20poly1305 by @kayabaNerve in #166
- Simplify example code by @BlackHoleFox in #175
- added example for oneway pattern Xpsk1 by @bluen in #186
Migrating from 0.9
The main change you'll likely notice is the need to add expect(...)
or ?
to a few builder functions that have been updated to further limit the chance of misuse.
Here are the semver-breaking changes:
- Builder function fallibility: more functions in the builder now return a
Result
to more explicitly prohibit calling the same setter twice. DHChoice::Ed448
has been renamed toDHChoice::Curve448
- Multiple new error enum variants have been added.
PRs
- Update dead docs link for forming NoiseParams strings by @thombles in #129
- Fix documentation reference to parameters in examples/simple.rs by @okdistribute in #113
- Bump
curve25519-dalek
to v4.0.0-rc.0 by @tarcieri in #148 - Update various links by @robyoder in #151
- Fix nonce incrementing in stateful transport to match the specification by @complexspaces in #152
- s/Ed448/Curve448/ by @dconnolly in #155
- curve25519_dalek 4 by @kayabaNerve in #161
- Bump aes-gcm and chacha20poly1305 by @kayabaNerve in #166
- Simplify example code by @BlackHoleFox in #175
- Add support for NIST P-256 curve by @AlfioEmanueleFresta in #185
- added example for oneway pattern Xpsk1 by @bluen in #186
- Remove direct dependency on rand and rand_core by @complexspaces in #193
Full Changelog: v0.9.6...v0.10.0
v0.10.0-beta.2
This latest beta cleans out the dependency graph, such that snow
now only has one required dependency (on subtle
)! Shoutout to @complexspaces for the work.
changes since v0.10.0-beta.1
- Updated Rust edition to 2024
- Remove dependency on
rand
, and feature-gated dependency ongetrandom
- Removed unused
byteorder
dependency
Quick Summary
snow
is now no_std
-friendly, with only one required dependency now if you bring your own cryptographic provider!
This release also sees some breaking API changes in the builder to further prevent misuse/abuse - more builder functions now return Result<Self, Error>
instead of Self
.
The P-256 curve is now also available as a non-default feature for those of you needing more curves in your life.
New
- Add support for NIST P-256 curve by @AlfioEmanueleFresta in #185
no_std
support withalloc
by @jmlepisto #183
Improvements
- Removed dependency on
rand
by @complexspaces in #193 - Update dead docs link for forming NoiseParams strings by @thombles in #129
- Fix documentation reference to parameters in examples/simple.rs by @okdistribute in #113
- Update various links by @robyoder in #151
- Fix nonce incrementing in stateful transport to match the specification by @complexspaces in #152
- s/Ed448/Curve448/ by @dconnolly in #155
- curve25519_dalek 4 by @kayabaNerve in #161
- Bump aes-gcm and chacha20poly1305 by @kayabaNerve in #166
- Simplify example code by @BlackHoleFox in #175
- added example for oneway pattern Xpsk1 by @bluen in #186
Migrating from 0.9
The main change you'll likely notice is the need to add expect(...)
or ?
to a few builder functions that have been updated to further limit the chance of misuse.
Here are all the semver-breaking changes:
- Builder function fallibility: more functions in the builder now return a
Result
to more explicitly prohibit calling the same setter twice. DHChoice::Ed448
has been renamed toDHChoice::Curve448
- Multiple new error enum variants have been added.
New Contributors
- @thombles made their first contribution in #129
- @okdistribute made their first contribution in #113
- @robyoder made their first contribution in #151
- @complexspaces made their first contribution in #152
- @dconnolly made their first contribution in #155
- @kayabaNerve made their first contribution in #161
- @AlfioEmanueleFresta made their first contribution in #185
- @bluen made their first contribution in #186
- @jmlepisto made their first contribution in #183
Full Changelog: v0.9.0...v0.10.0-beta.1
v0.10.0-beta.1
v0.10.0-beta.1
This change brings in some very welcome additions: no_std
support, finally, and unofficial support for the P-256 curve.
changes since v0.10.0-alpha.1
- Updated
rand_core
to 0.9 - Updated
criterion
to 0.6 - Updated
ring
andcurve25519-dalek
versions to the latest version that doesn't have a RUSTSEC warning
New
- Add support for NIST P-256 curve by @AlfioEmanueleFresta in #185
no_std
support withalloc
by @jmlepisto #183
Improvements
- Update dead docs link for forming NoiseParams strings by @thombles in #129
- Fix documentation reference to parameters in examples/simple.rs by @okdistribute in #113
- Update various links by @robyoder in #151
- Fix nonce incrementing in stateful transport to match the specification by @complexspaces in #152
- s/Ed448/Curve448/ by @dconnolly in #155
- curve25519_dalek 4 by @kayabaNerve in #161
- Bump aes-gcm and chacha20poly1305 by @kayabaNerve in #166
- Simplify example code by @BlackHoleFox in #175
- added example for oneway pattern Xpsk1 by @bluen in #186
Migrating from 0.9
The main change you'll likely notice is the need to add expect(...)
or ?
to a few builder functions that have been updated to further limit the chance of misuse.
Here are all the semver-breaking changes:
- Builder function fallibility: more functions in the builder now return a
Result
to more explicitly prohibit calling the same setter twice. DHChoice::Ed448
has been renamed toDHChoice::Curve448
- Multiple new error enum variants have been added.
New Contributors
- @thombles made their first contribution in #129
- @okdistribute made their first contribution in #113
- @robyoder made their first contribution in #151
- @complexspaces made their first contribution in #152
- @dconnolly made their first contribution in #155
- @kayabaNerve made their first contribution in #161
- @AlfioEmanueleFresta made their first contribution in #185
- @bluen made their first contribution in #186
- @jmlepisto made their first contribution in #183
Full Changelog: v0.9.0...v0.10.0-beta.1
v0.10.0-alpha.1
v0.10.0-alpha.1
This change brings in some very welcome additions: no_std
support, finally, and unofficial support for the P-256 curve.
New
- Add support for NIST P-256 curve by @AlfioEmanueleFresta in #185
no_std
support withalloc
by @jmlepisto #183
Improvements
- Update dead docs link for forming NoiseParams strings by @thombles in #129
- Fix documentation reference to parameters in examples/simple.rs by @okdistribute in #113
- Update various links by @robyoder in #151
- Fix nonce incrementing in stateful transport to match the specification by @complexspaces in #152
- s/Ed448/Curve448/ by @dconnolly in #155
- curve25519_dalek 4 by @kayabaNerve in #161
- Bump aes-gcm and chacha20poly1305 by @kayabaNerve in #166
- Simplify example code by @BlackHoleFox in #175
- added example for oneway pattern Xpsk1 by @bluen in #186
Migrating from 0.9
This should be a zero-diff change for most users of Snow, but there are small semver incompatibilities.
DHChoice::Ed448
has been renamed toDHChoice::Curve448
- Multiple new error enum variants have been added.
New Contributors
- @thombles made their first contribution in #129
- @okdistribute made their first contribution in #113
- @robyoder made their first contribution in #151
- @complexspaces made their first contribution in #152
- @dconnolly made their first contribution in #155
- @kayabaNerve made their first contribution in #161
- @AlfioEmanueleFresta made their first contribution in #185
- @bluen made their first contribution in #186
- @jmlepisto made their first contribution in #183
Full Changelog: v0.9.0...v0.10.0-alpha.1
v0.9.6
- Validate invalid PSK positions when building a Noise protocol.
- Raise errors in various typos/mistakes in Noise patterns when parsing.
- Deprecate the
sodiumoxide
backend, as that crate is no longer maintained. We may eventually migrate it to a maintaned version of the crate, but for now it's best to warn users. - Set a hard limit in
read_message()
in transport mode to 65535 to be fully compliant with the Noise specification.
Full Changelog: v0.9.5...v0.9.6
v0.9.5
This is a security release that fixes a logic flaw in decryption in TransportState
(i.e. the stateful one), where the nonce could increase even when decryption failed, which can cause a desync between the sender and receiver, opening this up as a denial of service vector if the attacker has the ability to inject packets in the channel Noise is talking over.
More details can be found in the advisory: GHSA-7g9j-g5jg-3vv3
All users are encouraged to update.
v0.9.4
v0.9.3
v0.9.2
This is a patch release to address a correctness issue for compliance with the Noise specification: the nonce CipherState
and StatelessCipherState
did not check that, instead just making sure that there was no integer overflow.
Thanks to @kjvalencik for reporting the issue and @complexspaces for contributing the fix PR (#152).
Thanks to @robyoder as well for fixing broken links and making sure all links were HTTPS (#151).
Full Changelog: v0.9.1...v0.9.2