If you leave things in to appease the box-checkers, you end up with, well, OpenSSL.
Whoa, who, let's not be so cruel to other crypto developers. You can appease the box-checkers quite a bit without being an utter, insecure mess like OpenSSL. There's libraries that do while making the box-checking stuff optional.
It would be true had you said: If the only thing you do is leave things in to appease the box-checkers...
https://www.imperialviolet.org/2014/04/19/revchecking.html
Revocation doesn't really work yet. Is there deployed stapling-required yet?</strike>
See AGL's comment below.
It's a possible future goal of the project to end up API compatible to OpenSSL to do just what the GP was saying. I think the constant time functions are the biggest reason it can't happen yet, though there's probably more I'm just not aware of.
For those wondering, that's because asm! is not stabilised and the stabilisation path for it is unclear[0], there's also been a proposal for an alternative asm![1], Rust otherwise relies on LLVM and Brian Anderson reported[2] having
> been told by LLVM folks that getting LLVM to do constant time code generation is essentially hopeless, and it should just be written in asm.
Nadeko[3] aims to do exactly that, but because of the above only works on nightly.
[0] an RFC was created then retracted[4] for discussions on internals[5]
[1] https://github.com/rust-lang/rfcs/pull/129/files
[2] http://rust-dev.1092773.n5.nabble.com/Rust-crypto-highlights...
[3] https://github.com/klutzy/nadeko
[4] https://github.com/rust-lang/rfcs/issues/1274
[5] https://internals.rust-lang.org/t/stabilization-path-for-asm...
And now I wonder why there isn't already such a project, surely the number of necessarily constant-time functions is relatively low? Constant-time equality (of byte sequences), constant time conditional (`a if b else c`), constant-time comparison (<=) and maybe constant-time bytes copy?