1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-12 23:01:01 +00:00
serenity/Userland/Libraries/LibCrypto
Timothy Flynn 62b575ad7c LibCrypto: Implement little endian CRC using the slicing-by-8 algorithm
This implements Intel's slicing-by-8 algorithm for CRC checksums (only
little endian CPUs for now, as I don't have a way to test big endian).

The original paper for this algorithm seems to have disappeared, but
Intel's source code is still available as a reference:

    https://sourceforge.net/projects/slicing-by-8/

As well as other implementations for reference:

    https://docs.rs/slice-by-8/latest/src/slice_by_8/algorithm.rs.html

Using the "enwik8" file as a test (100MB uncompressed, commonly used in
benchmarks: https://www.mattmahoney.net/dc/enwik8.zip), decompression
time decreases from:

    4.89s to 3.52s on Serenity (cold)
    1.72s to 1.32s on Serenity (warm)
    1.06s to 0.92s on Linux
2023-03-31 06:56:05 +02:00
..
ASN1 LibCrypto: Add multiple PEM parser 2023-03-16 18:54:20 +03:30
Authentication LibCrypto: Do a simple copy for buffered GHash bytes 2023-02-08 17:53:19 +00:00
BigFraction LibCrypto+Everywhere: Rename *BigInteger::to_base to to_base_deprecated 2023-01-15 01:00:20 +00:00
BigInt Everywhere: Use _{short_,}string to create Strings from literals 2023-02-25 20:51:49 +01:00
Checksum LibCrypto: Implement little endian CRC using the slicing-by-8 algorithm 2023-03-31 06:56:05 +02:00
Cipher AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
Curves AK+LibCrypto: Delete 64x64 wide multiplication workarounds 2023-03-04 22:10:03 -07:00
Hash LibCrypto: Update entire blocks in SHA*::update() 2023-03-24 15:28:10 +00:00
NumberTheory Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
PK LibCrypto: Use ErrorOr error handling for parsing DER 2023-02-08 18:50:53 +00:00
CMakeLists.txt Everywhere: Mark dependencies of most targets as PRIVATE 2022-11-01 14:49:09 +00:00
Forward.h Everywhere: Remove unused includes of AK/Concepts.h 2023-01-02 20:27:20 -05:00
Verification.h AK+Userland: Use mpfard@serenityos.org for my copyright headers 2021-04-22 22:19:09 +02:00