Releases: saucecontrol/Blake2Fast
Releases · saucecontrol/Blake2Fast
v2.0.0
Breaking Changes
- The root namespace has been changed from
SauceControl.Blake2Fastto simplyBlake2Fast. CreateIncrementalHashernow returns the hash state struct directly rather than a boxedIBlake2Incrementalreference. 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
DigestLengthproperty 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
ComputeAndWriteHashmethod for allocation-free hashing
v0.1.0
Initial release