github BLAKE3-team/BLAKE3 1.2.0

latest releases: 1.5.1, guts_0.0.0, 1.5.0...
2 years ago

version 1.2.0

Changes since 1.1.0:

  • SECURITY FIX: Fixed an instance of undefined behavior in the Windows
    SSE2 assembly implementations, which affected both the Rust and C
    libraries in their default build configurations. See
    #206. The cause was a
    vector register that wasn't properly saved and restored. This bug has
    been present since SSE2 support was initially added in v0.3.7. The
    effects of this bug depend on surrounding code and compiler
    optimizations; see test_issue_206_windows_sse2 for an example of this
    bug causing incorrect hash output. Note that even when surrounding
    code is arranged to trigger this bug, the SSE2 implementation is
    normally only invoked on CPUs where SSE4.1 (introduced in 2007) isn't
    supported. One notable exception, however, is if the Rust library is
    built in no_std mode, with default_features = false or similar. In
    that case, runtime CPU feature detection is disabled, and since LLVM
    assumes that all x86-64 targets support SSE2, the SSE2 implementation
    will be invoked. For that reason, Rust callers who build blake3 in
    no_std mode for x86-64 Windows targets are the most likely to
    trigger this bug. We found this bug in internal testing, and we aren't
    aware of any callers encountering it in practice.
  • Added the Hasher::count() method.

Don't miss a new BLAKE3 release

NewReleases is sending notifications on new releases.