LogoTurboSFV - Blog
 Home
Sign Posting and additional functions are only available, if you can be identified by using a session cookie. By clicking on Set Cookie, the server sends a cookie to your browser and instructs your browser to remove the cookie after 4 hours. Cookies must be enabled in your browser.
Icon TurboSFV
Icon 2026-11-07 14:22:54
TurboSFV v11.21 - CRC-32c (Castagnoli)
Notes to TurboSFV v11.21:

The new version of TurboSFV provides a variant of CRC-32, called CRC-32c. The calculation of CRC-32c checksums is based on a different polynomial 0x1EDC6F41 (Castagnoli), thus the resulting checksums are different. According to the docs, this polynomial offers a better protection against accidental errors, which are then flagged in a changing checksum.

However, what makes the Castagnoli polynomial interesting is the fact, that it is supported by a special CPU instruction named "CRC32": Means, a programmer has only to provide the incoming bytes and the CPU instruction takes over the remaining part, which includes reflecting numbers, xor'ing and shifting bits as well as handling lookup tables. In principle, the programmer has only to pickup the result, which makes the calculation much faster.

This CPU instruction came with SSE4.2 (around year 2008), although it hasn't really anything to do with SSE (Streaming SIMD Extensions), except that the word "Streaming" indicates, that the purpose was to process bytes, which are dropping in, in an effective, hardware accelerated manner, so that transmission errors can be detected. TurboSFV checks the CPU against the feature SSE4.2, before using the instruction "CRC32".

If the feature isn't available, then the CRC-32c checksum is manually calculated, like CRC-32, but by using the Castagnoli polynomial. This also explains, why then the resulting speed is more or less the same. The use of this special instruction can also be turned on and off in the configuration of TurboSFV on page "Calculation". The command-line versions can be instructed via the switch "/d:1" to use the instruction, if available.

Note that TurboSFV is saving CRC-32c checksums in files with the extension ".crc", indicating the family of these algorithms, while CRC-32 hash values are still saved in ".sfv" files, to avoid confusion between the two variants. Alternatively, the name of the algorithms can be used.

Feel free to add here a comment regarding this new version.
TurboSFV
Cologne, Germany




Back to list
 
 



Privacy PolicyVulnerability Disclosure Policy