mirror of
https://github.com/aaru-dps/Aaru.Checksums.Native.git
synced 2025-12-16 11:14:29 +00:00
a9b6c4868b198d9b94e3ea922e113798ce9a755d
The limit when calculating the value of NMAX is 2^16-1 only when sum1 and sum2 are represented as 16-bit. We're representing them as 32-bit. This will be helpful for SIMD implementations of Fletcher-16, because the old limit of 22 bytes would have meant that we could only process 16 bytes at a time before having to compute modulo.
Aaru.Checksums.Native
This repository contains the Aaru.Checksums.Native library for Aaru.
The purpose of this library is to provide checksums and hashing algorithms for Aaru.
No archiver processing code should fall here, those go in Aaru.Checksums.
To build you just need Docker on Linux and run build.sh, that will generate a NuGet package for use with Aaru.Checksums.
Currently implemented algorithms are:
- Adler-32
- CRC-16 (CCITT and IBM polynomials)
- CRC-32 (ISO polynomial)
- CRC-64 (ECMA polynomial)
- Fletcher-16
- Fletcher-32
- SpamSum
Each of these algorithms have a corresponding license, that can be found in their corresponding file header.
The resulting output of build.sh falls under the LGPL 2.1 license as stated in the LICENSE file.
Any new algorithm added should be under a license compatible with the LGPL 2.1 license to be accepted.
© 2021-2023 Natalia Portillo
Languages
C
80.1%
C++
15.9%
Shell
2.4%
CMake
1.6%