Skip to content

Releases: Roydl/Crypto

1.2.3

05 May 10:20
Compare
Choose a tag to compare
  • ✔️ Add full support to .NET 7.0
  • ⭕ Remove support to .NET Core 3.1 as it reached EOL

(Note that all BREAKING CHANGES are marked with ⭕)

1.2.1

13 Oct 14:13
Compare
Choose a tag to compare
  • ⭕ Update to .NET 6.0 as 5.0 is reaching EOL

(Note that all BREAKING CHANGES are marked with ⭕)

1.2.0

24 Jun 23:10
Compare
Choose a tag to compare
  • ✔️ Implemented hardware mode for CRC-32/C (ARM + SSE4.2 CPU)
  • ✔️ Implemented hardware mode for CRC-32/XZ (ARM only)
  • ✔️ Implemented limited hardware mode for Adler-32 (SSE2 CPU only)
  • ✔️ Improved documentation in many cases
  • ✔️ Improved performance for all cyclic algorithms by up to 700%
  • ✔️ Improved byte[] converter of CryptoUtils class
  • ✔️ Improved Crc class caching so that it is now a part of CrcConfigManager and is adjustable
  • ✔️ Replaced argument type byte[] by type ReadOnlySpan<byte> whenever possible
  • ✔️ Reworked classes that uses built-in algorithms to support Span<byte> and improve performance
  • ✖️ Changed ChecksumAlgo enums so that most options are marked with EditorBrowsable(EditorBrowsableState.Never) attribute to keep the visible list compact
  • ➕ Added constructor to CrcConfigBeyond that uses string instead of BigInteger, which automatically converts its value
  • ➕ Added flexible high performance byte[] to hexadecimal converter to CryptoUtils class
  • ➕ Added performance-optimized extension methods to hash all elements of DirectoryInfo objects
  • ➕ Added remarks for performance optimized algorithms
  • ➕ Added AlgorithmName field to ChecksumAlgorithm types
  • ⭕ Changed CRC-32 default algorithm to CRC-32/C
  • ⭕ Changed type of RawHash field from ReadOnlyMemory<byte> to ReadOnlySpan<byte> for all ChecksumAlgorithm types
  • ⭕ Removed all public constructors that takes arguments from all ChecksumAlgorithm types
  • ⭕ Renamed Bits to BitWidth for CrcConfig types
  • ⭕ Renamed DecryptBytes methods to Decrypt for all SymmetricKeyAlgorithm types
  • ⭕ Renamed DecryptStream methods to Decrypt for all SymmetricKeyAlgorithm types
  • ⭕ Renamed EncryptBytes methods to Encrypt for all SymmetricKeyAlgorithm types
  • ⭕ Renamed EncryptStream methods to Encrypt for all SymmetricKeyAlgorithm types
  • ⭕ Renamed Encrypt methods to ComputeHash for all ChecksumAlgorithm types
  • ⭕ Renamed HashNumber field to CipherHash for all ChecksumAlgorithm types

(Note that all BREAKING CHANGES are marked with ⭕)

1.1.1

07 Jun 13:07
Compare
Choose a tag to compare
  • ✔️ Fixed issues in XmlDoc
  • ➕ Removed all maximum bit limits
  • ❌ Removed redundant enum aliases from CrcOptions enums
  • ➕ Added more CRC config presets (now there are almost 90 in total)
  • ⭕ Redesigned CrcConfig to significantly improve performance 🔸 BREAKING CHANGE
  • ➕ Added IChecksumResult interface
  • ➕ Added various utilities to CryptoUtils class
  • ✔️ Fixed issue where CRC-16/XMODEM was incorrect for extension methods
  • ➕ Added <Type>.Create() methods for ChecksumAlgorithm types
  • ➕ Added explizit operators to ChecksumAlgorithm types

1.1.0

31 May 16:45
Compare
Choose a tag to compare
  • Fix various issues where some CRC hashes were totally broken
  • All algorithms are now always validated by its check number when initialized for the first time

1.0.9

30 May 18:54
Compare
Choose a tag to compare
  • Removed obsolete extension methods
  • Fixed issues where the CrcConfig hash sizes were wrong in some cases
  • Fixed issue where the bit size could be larger than the generic type allows
  • Added IChecksumAlgorithm method for text or file encryption
  • Added BigInteger type support for CrcConfig
  • Added about 50 CRC config presets between 16 and 82 bit

1.0.8

26 May 15:54
Compare
Choose a tag to compare
  • Fixed issue where array size limit in GetBytes was too large
  • Improved CrcConfig struct so that more CRC variations are supported
  • Added support for FileInfo objects
  • Added Try extensions which suppress exceptions
  • Added support for odd bit algorithms
  • Removed vulnerable ECB (Electronic Code Book) encryption mode
  • Increased the number of supported types of extensions by more than 30 types
  • Renamend Encrypt extensions to GetChecksum to avoid name collisions
    • (Obsolete extensions will be removed next version)

1.0.7

22 May 22:22
Compare
Choose a tag to compare
  • Fixed an issue where the byte order of Adler-32 and CRC-16+32+64 was wrong on big-endian processor architecture
  • Removed internal instance caching, which is no longer needed
  • Reworked GetGuid extension method so that it combines the bytes of both hashes instead of cutting parts and placing them next to each other
  • HMAC encryption is now available for MD5 and SHA-1+2 by setting the SecretKey instance field
    • The SecretKey can be removed from process memory by calling the DestroySecretKey() instance method
  • General code improvements, minor fixes and expansion of the documentation

1.0.6

15 May 20:38
Compare
Choose a tag to compare
  • SymmetricKeyAlgorithm classes are now IDisposable
    • Dispose() will try to completely remove the password and salt from memory. This will only work if there are no other references to these data outside
  • Added interface and abstract generic class of ChecksumAlgorithm
  • Added CrcConfig structure to quickly create custom CRC classes according to other standards
  • Improved caching so that only used types are cached instead of all
  • Minor fixes, improvements and code cleanups

1.0.5

11 May 15:17
04e6052
Compare
Choose a tag to compare