5 ms·
You can get a good example of this by simply hitting this link and reviewing the first few hits: https://github.com/search?utf8=%E2%9C%93&q=aes+encryption http
by technion 10y ago
You can get a good example of this by simply hitting this link and reviewing the first few hits:
https://github.com/search?utf8=%E2%9C%93&q=aes+encryption https://github.com/search?utf8=%E2%9C%93&q=aes+encryption
I'm not going to call out any project by name, but on the first few pages, I see:
- A project which implements unauthenticated CBC mode AES
- A project that does not, in any way, document its mode or implementation beyond "using AES 256"
- A project with <10 commits, more than two years ago, yet over 50 stars
- A project that uses mcrypt
Over all, it is easier to find a project with horrible deficiencies than anything that didn't immediately look concerning. And every one of these boasts "AES 256 encryption".
- Cyph0n 10y agoI see, thank you for explaining. I'll definitely stick to the "known" libraries if I need AES.
- rascul 10y agoWhat is wrong with mcrypt?
- tptacek 10y agoIt's a low-level crypto library that leaves avoidance of virtually all the exploitable crypto mistakes as an exercise for the programmer.
- technion 10y agoI started writing an answer, but this blog is more comprehensive than anything I could put together: https://paragonie.com/blog/2015/05/if-you-re-typing-word-mcrypt-into-your-code-you-re-doing-it-wrong https://paragonie.com/blog/2015/05/if-you-re-typing-word-mcr... Problem #2 is something I've hit in multiple real-world codebases.