-
Notifications
You must be signed in to change notification settings - Fork 1
V6.0.0
Introducing version 6.0.0 with major to minor changes and bug fixes. This work is towards stabilizing the ABI and API with minimum major changes required to do so.
Here's a brief list of the changes we've made:
-
HashAlgorithmWrapper has been superseded by direct individual .NET implementations, no secrecy or hidden features under the hood, you will have direct access to all available hash algorithms from the universal HashFactory. The added/exposed .NET cryptographic hash algorithms are as follows:
- HMACMD5
- HMACSHA1
- HMACSHA256
- HMACSHA384
- HMACSHA512
- HMACSHA3_256
- HMACSHA3_384
- HMACSHA3_512
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
- SHA3_256
- SHA3_384
- SHA3_512
-
Config presets such as CRC32 have been replaced with globalized config profile classes. Now every preset is defined and then exposed to the universal factory, from which you can get a list of config profiles for every hash algorithm supported. However, not all algorithms have default configs, so some will continue to return an empty array. This just solves two things:
- You no longer have to manually look for a specific algorithm's preset, as you can directly retrieve them with a single function call:
GetConfigProfiles(). - You can now fully automate the batch computation process by supplying the first occurrence of available presets from the array
GetConfigProfiles(), no longer having to map each one individually.
- You no longer have to manually look for a specific algorithm's preset, as you can directly retrieve them with a single function call:
-
Small typo fixes.
-
Added
GetUnavailableHashAlgorithmsfor .NET8 and later to be able to gather a list of unavailable hash algorithms. This only applies to the exposed cryptographic .NET implementations, specifically to SHA3 implementations, as they are not always available by the underlying operating system, in which case .NET throws an exception. While all .NET implementation wrappings are deriving fromIHashAlgorithmWrapperAlgorithm, the platform-dependent ones also derive fromIHashAlgorithmWrapperPlatformDependentAlgorithmto explicitly notify about this behaviour. You can directly access theIsSupportedbool flag through every implementation deriving fromIHashAlgorithmWrapperPlatformDependentAlgorithm, such asHMACSHA3_256orSHA3_256. -
Added
GetConcreteConfigsmethod to generic and non-generic universal factory. This returns the concrete config classes of every hash algorithm asked by theHashFunctionTypeenum. For example, forICRC, this returnsCRCConfig. -
Added
CreateDefaultConcreteConfigmethod to generic and non-generic universal factory. You can directly create an instance of the given algorithm's concrete config, only if it has a public parameterless constructor. This implementation throwsKeyNotFoundExceptionif the interface type is not available through the factory, andNotSupportedExceptionif the concrete config does not have any public parameterless constructor. -
Added
TryCreateDefaultConcreteConfigmethod to generic and non-generic universal factory. This is the alternative method toCreateDefaultConcreteConfigthat internally callsCreateDefaultConcreteConfigand catches the specified exceptions to return false. It's a good alternative for purposes to silently ignore such failures. -
Renamed
GetHashFunctionstoCreateHashAlgorithmsfor clarity.
For the full list of changes, please check our change log.
© 2025, Deskasoft International. All rights reserved.