Skip to content

HashifyNET 4.0.0

Pre-release
Pre-release

Choose a tag to compare

@LordOfXen LordOfXen released this 28 Aug 23:10
· 406 commits to main since this release
58d3a4d

The entire library has been revamped and renamed to HashifyNET, replacing the previous name of Data.HashFunction.
Changes include but are not limited to:

  • Standardized HashFactory class for all hash functions.
  • Support for 11 more hash algorithms as listed on the main page.
  • Bug fixes in CRC with pre-defined configs not being cloned before returning. This was causing a potential leak of the original config class that can be accessed by casting the interface to the underlying class. If the values were then changed by any chance, the default config values would be changed as well, leading to hard-to-predict behaviour for developers. This has been prevented with a Clone call.
  • Simplified Farm Hash and Metro Hash to use configs instead of different implementations for each bit size.
  • Enforced config implementation for every hash function; configs are now globalized across the entire library.
  • Added HashComparer static class for fixed time comparisons of two cryptographic hashes. It is primarily required for cryptographic hashes.
  • Added cryptographic interfaces and base classes to the core. However, the current support only includes cryptographic config disposal and nothing more yet.
  • Added Endianness static class, but it is currently not mature yet. It is for internal use only, shared across the entire library for each hash algorithm to use.
  • Added support for .NET 8, which was primarily aimed at for future intrinsics support.
  • Blake3 implementation is rewritten entirely in C#, no dependency or unmanaged library required anymore.
  • The custom UInt128 struct has been restricted to .NET Standard 2.0 use, and the built-in UInt128 will be used in .NET 8. We have also moved the custom UInt128 implementation in each algorithm into a single place under Core.Utilities, no more redundant definitions for such utilities.

Full Changelog: https://github.com/Deskasoft/HashifyNET/commits/4.x.x