tatsuhiro-t/aria2 — pull request #239 by nmaier (2014-06-10 12:07:36+00:00)
Title: Fix MessageDigests

This adds a complete internal implementation, that also works on big endian correctly.
As it happens my PBKDF2 implementation wasn't really supporting big-endian. This wouldn't be so much of a problem in aria2c's case as the derived keys never left the process. Only `make check` on big-endian was effectively affected.
Performance-wise the hash implementations should be fast enough. Actually as fast as or even a little faster than the shipped and `brew`ed `openssl dgst` implementations on my MacBook Air when hashing some medium to large files, but I'm not sure how much can be attributed to the OpenSSL file I/O abstraction layers...

Also remove WinMessageDigest, because it is incomplete at least lacking SHA-224 (or more on XP < SP3).

I first implemented this stuff here (out of curiosity mainly):
https://github.com/nmaier/crypto
There are some unit tests (against RFC test vectors and/or Python aka. OpenSSL)