Matt Nadareski
febb341421
Expose all hash types and cleanup
...
This exposes all HashType implementations for all .NET versions. For versions that are not supported for a particular hash, only the hash creation method is gated. This allows for access to the type, name, description, and zero bytes/string properties.
2026-07-23 13:26:21 -04:00
Matt Nadareski
529dae9658
Add CRC-82/DARC
2026-03-20 12:57:41 -04:00
Matt Nadareski
20cc2f6036
If migrating away from enum, do it more extensibly
2026-03-20 09:21:47 -04:00
Matt Nadareski
00a5c6c2c5
Convert HashType from enum to static class with constants
...
Because the ordering of the enum was not guaranteed, both because of variances in .NET version and even library version, any change could mean that invisible version bumps would misalign. This attempts to fix that by converting HashType from an enum to a static class with a set of constants instead. This allows logical groupings and orderings without it affecting the values of each item.
2026-03-20 00:18:40 -04:00
Matt Nadareski
0075b9b1ad
Add CRC-32/DVD-ROM-EDC ( fixes #4 )
2026-01-11 09:20:15 -05:00
Matt Nadareski
53e28df7f8
Make MekaCrc official
2025-09-25 07:51:44 -04:00
Matt Nadareski
adc918ea8a
Make FNV public
2024-11-11 04:00:56 -05:00
Matt Nadareski
3382c20217
Add MD4 efficient implementation
2024-11-10 23:32:33 -05:00
Matt Nadareski
3e18ddce9f
Create inefficient MD2 implementation
2024-11-10 21:36:38 -05:00
Matt Nadareski
d57396612f
Add Fletcher family checksums
2024-11-09 23:14:31 -05:00
Matt Nadareski
6df184fa4e
Add Tiger2 variants (0x80 pad start)
2024-11-09 21:32:02 -05:00
Matt Nadareski
bb9d4155d2
Add Tiger family hashes
2024-11-09 20:46:05 -05:00
Matt Nadareski
79c10cf2fb
Add RIPEMD-256 implementation
2024-11-09 02:59:17 -05:00
Matt Nadareski
ffc6bc045d
Add RIPEMD-320 implementation
2024-11-09 02:54:04 -05:00
Matt Nadareski
d096cbf07e
Add RIPEMD-128 implementation
2024-11-09 02:33:51 -05:00
Matt Nadareski
bb67c3e2f3
Migrate to internal RIPEMD-160 implementation
2024-11-09 01:18:52 -05:00
Matt Nadareski
f74c9ddffd
Use internal implementation for XXH64
2024-11-08 13:11:58 -05:00
Matt Nadareski
b728aa77c7
Use internal implementation for XXH32
2024-11-08 12:33:43 -05:00
Matt Nadareski
9c27523612
xxHash aren't reversed
2024-11-08 00:54:22 -05:00
Matt Nadareski
7559ba2edc
Add CRC-1 (parity bit)
2024-11-07 22:25:48 -05:00
Matt Nadareski
7878591107
Add CRC-3/4/5/6/7 implementations
2024-11-07 15:18:18 -05:00
Matt Nadareski
6f536b8e2a
Add CRC-8 implementations
2024-11-07 14:54:44 -05:00
Matt Nadareski
0e8694cc90
Add CRC-10/11/12/13/14/15 implementations
2024-11-07 14:28:08 -05:00
Matt Nadareski
a7f8e0664a
Fix reflecting initial value
2024-11-07 13:56:56 -05:00
Matt Nadareski
1a941b44fc
Fix and reenable CRC-17
2024-11-07 12:49:33 -05:00
Matt Nadareski
c1a9e007c5
Make test more maintainable
2024-11-07 12:24:12 -05:00
Matt Nadareski
fb83427c91
Add CRC-17 and CRC-21 implementations
2024-11-07 03:36:34 -05:00
Matt Nadareski
57f9aa9133
Add CRC-30 and CRC-31 implementations
2024-11-07 03:13:05 -05:00
Matt Nadareski
1fc4c13683
Add testing comment
2024-11-06 15:19:57 -05:00
Matt Nadareski
2ef3a6f254
Add CRC-24 implementations
2024-11-06 14:45:19 -05:00
Matt Nadareski
827239a08a
Add CRC-40 implementation
2024-11-06 14:32:17 -05:00
Matt Nadareski
c1e847c1cf
Reenable RIPEMD test
2024-11-06 14:15:55 -05:00
Matt Nadareski
9610e1756f
Add remaining CRC-16 implementations
2024-11-06 06:31:29 -05:00
Matt Nadareski
3905905301
Make CRC-64/ECMA default
2024-11-06 05:21:39 -05:00
Matt Nadareski
4c006317be
Add remaining CRC-32 implementations
2024-11-06 05:19:13 -05:00
Matt Nadareski
2dcf0e7eea
Add remaining CRC-64 implementations
2024-11-06 05:08:21 -05:00
Matt Nadareski
0cf07ae13a
Remove external CRC-32 implementations
2024-11-06 04:54:27 -05:00
Matt Nadareski
9e48cca1a3
Add unoptimized generic CRC framework
2024-11-06 04:46:39 -05:00
Matt Nadareski
23679266b4
Finalize CRC64 support names
2024-11-06 02:54:27 -05:00
Matt Nadareski
992e22cc76
ECMA/ISO war
2024-11-06 02:34:59 -05:00
Matt Nadareski
5cfe0dcb09
Remove "CRC64_ECMA"
2024-11-06 02:21:20 -05:00
Matt Nadareski
3ebb489f23
Use correct name for implementation
2024-11-06 02:14:58 -05:00
Matt Nadareski
94b9e91718
Create and use CRC64_ECMA
2024-11-06 00:37:40 -05:00
Matt Nadareski
b22f3d2743
Better documentation in tests
2024-07-19 10:50:46 -04:00
Matt Nadareski
23ed4e9849
Ensure multiple files hash correctly from archives
2024-07-19 10:47:42 -04:00