> On Feb 4, 2025, at 6:49 AM, Alexander Schreiber via cctalk
> <cctalk@classiccmp.org> wrote:
>
> On Tue, Feb 04, 2025 at 01:33:48AM -0600, Steve Lewis via cctalk wrote:
>> Beyond just the compiler, there are also optimization and other settings
>> (like the multitude levels of C-compliance or how strict to be about
>> warnings, or conditional-builds to tailor it specific situations).
>>
>> Regardless, proper binary deliveries come with CRC checksums. This isn't
>
> Nitpick: Not CRC checksums, as those are only good to detect gross data
> corruption (e.g. an entire page/sector being zeroed). The standard these
> days is proper cryptographic hashes that are still known to be strong
> (e.g. not MD5, as it is known to be weak and collisions can be generated,
> but SHA256/SHA512) and the hashes cryptographically signed.
Further nitpick. A CRC can do more than detect “only . . . gross data
corruption.”
A properly designed CRC polynomial of length n should detect all errors
in a message block from a single-bit to a burst that is n bits long. A CRC
would be computed for each block of a message as opposed to a crypto-
graphic hash which is usually computed over the entire message.
—Milo