DJB on writing "boring" programs in C:

> As a boring platform for the portable parts of boring crypto software,
> I'd like to see a free C compiler that clearly defines, and permanently
> commits to, carefully designed semantics for everything that's labeled
> "undefined" or "unspecified" or "implementation-defined" in the C
> "standard". This compiler will provide a comprehensible foundation for
> people writing C code, for people auditing C code, and for people
> formally verifying C code.
> For comparison, gcc and clang both feel entitled to arbitrarily change
> the behavior of "undefined" programs. Pretty much every real-world C
> program is "undefined" according to the C "standard", and new compiler
> "optimizations" often produce new security holes in the resulting object
> code, as illustrated by
>    https://lwn.net/Articles/342330/
>    https://kb.isc.org/article/AA-01167
> and many other examples. Crypto code isn't magically immune to this---
> one can easily see how today's crypto code audits will be compromised by
> tomorrow's compiler optimizations, even if the code is slightly too
> complicated for today's compilers to screw up. A boring C compiler will
> eliminate these nasty surprises; it will prioritize predictability.


https://groups.google.com/d/msg/boring-crypto/48qa1kWignU/o8GGp2K1DAAJ

Will.
_______________________________________________
langsec-discuss mailing list
langsec-discuss@mail.langsec.org
https://mail.langsec.org/cgi-bin/mailman/listinfo/langsec-discuss

Reply via email to