Wycheproof – Tests that check cryptographic software for known weaknesses
security.googleblog.com
security.googleblog.com
Daniel Bleichenbacher is one of the most famous living cryptanalysts. He's famous for a number of attacks on public-key cryptosystems like RSA and ECSDA, and published one of the very first error oracle attacks. Many attacks on SSL/TLS trace, intellectually, back to him. Crypto nerds tend to be surprised to learn that he's been working at Google for years now.
Thai Duong is part of the teams that discovered the TLS BEAST attack, the CRIME attack, and the POODLE attack, in addition to a bunch of other crypto attacks on software (for instance, he and his partner-in-crime Juliano Rizzo discovered the CBC padding oracle attack on .NET, and the SHA length extension attack on the Flickr API).
The most important thing about this work is the crypto knowledge encoded into the unit tests. Relative to the effort it takes to come up with these test cases, it's comparatively easy to port them to other languages.
It's worth reading through the source code on this project just for the comments. For instance: there was apparently a bignum primality flaw in Gnu Crypto that broke SRP --- which I learned only from a comment in the bignum test cases.
I agree, the negative test cases would be good to see.
I wish more people saw comments (and by extension, commit messages) in this same light. Fan-freakin'-tastic.
It's the whys that cause the most head-scratching later, the whats are usually pretty straightforward (if not, it probably wouldn't make it through code review).
// Signatures with special case values for r and s (such as 0 and 1). // Such values often uncover implementation errors.
I liked the diss on GCM in the GCM test suite.
On a related note: how prevalent is Java among the security folk?
Most of the crypto algorithms I've read are done in C. As a person that wants to try rolling my own crypto, I just don't see myself writing it in Java.
Generally this sounds like a great effort to harden important software.