On Feb 4, 2025, at 6:49 AM, Alexander Schreiber via
cctalk <cctalk(a)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