We’ve just started using BINSEC for RustCrypto, by way of cargo-checkct.

It’s static analysis tooling that lets you write a test harness that answers the question “does the code under test ever perform non-constant-time CPU instructions on secret inputs?” and it works across a variety of different CPU architectures.

In a world of optimizing compilers that don’t give assurances, at least this way we can have tests (and they run in CI to prevent regressions!)

#rust #cryptography