Releases: saucecontrol/Blake2Fast
Releases · saucecontrol/Blake2Fast
v2.0.0
Breaking Changes
- The root namespace has been changed from
SauceControl.Blake2Fast
to simplyBlake2Fast
. CreateIncrementalHasher
now returns the hash state struct directly rather than a boxedIBlake2Incremental
reference. This enables GC allocation-free incremental hashing.- The code to support running on big-endian platforms has been removed. This code was never tested, and leaving it out simplifies the remaining implementation.
IBlake2Incremental Improvements
- Added
Finish(Span<byte>)
overload. - Added
DigestLength
property so the size of span required forFinish(Span<byte>)
can be queried in advance. - Added
Update<T>()
generic methods accepting a struct, array of struct, or Span of struct. Update()
now throws if called afterFinish()
Performance Improvements
- The SSE4.1 BLAKE2s and AVX2 BLAKE2b implementations are roughly 10% faster than in v1.0
v1.0.0
- Added support for .NET Core 3.0
- Added AVX2 implementation of BLAKE2b (.NET Core 3.0 only)
- Unified API to use
Span<byte>
orReadOnlySpan<byte>
everywhere instead of usingArraySegment<byte>
andbyte[]
for older targets. - Added strong name key
- Removed NetStandard 1.0 build target due to lack of
Span<T>
support.
v0.2.0
- Added
ComputeAndWriteHash
method for allocation-free hashing
v0.1.0
Initial release