Are you kidding ?
There is plenty of of lessons to be learned here
- Code involving cryptography should be written with some level of basic rigor, even at that prototype phase, otherwise you lose credibility (evidence above)
- Code involving cryptography that's in a prototype phase should not be marketed in a bubbly 'use this now' fashion
- Academics should be aware that their code is likely to be taken and used as is
I could go on all day.
EDIT: I left this out initially, then edited it in, then edited it out, but to claim that "they know what they are doing" so whatever their students do doesn't impact their credibility is so bizarre.
Surely these students are supposed to be being taught to go and become implementators or advise implementators. So maybe they should be taught to not use rand(), to have a clear and reproducible project build, to not provide prototype work marketed as usable, etc, etc. Cryptography is usually broken (bypassed) by implementation flaws, afaik, and I'm not even an expert.
I'm not taking a position on this code base or paper because I haven't looked much, just on the argument that "they know what they are doing so its fine" and "it's fine that academics can't implement, they are only working on cryptography"