aboutsummaryrefslogtreecommitdiff
path: root/toys/lsb/md5sum.c
AgeCommit message (Collapse)Author
2017-05-26Be more consistent about periods in help text.Elliott Hughes
2016-07-15Fix non-library md5sum build. (Oops.)Rob Landley
2016-07-15Add optional openssl accelerated versions of hash functions, loosely based onRob Landley
a patch from Elliott Hughes, who said: [PATCH] Add support for libcrypto for MD5/SHA. Orders of magnitude faster (for architectures where OpenSSL/BoringSSL has optimized assembler). Also adds sha224sum, sha256sum, sha384sum, and sha512sum for folks building with libcrypto. The fallback portable C implementations could easily be refactored to be API-compatible, but I don't know whether they'd stay here or move to lib/ so I've left that part alone for now.
2016-07-14Add -c to md5sum and sha1sum.Rob Landley
2014-11-19Make md5sum and sha1sum work on big endian systems.0.5.1Rob Landley
2014-09-26Separate more commands so single.sh can build them standalone.Rob Landley
2014-06-07Make md5sum/sha1sum -b flag be "brief" output (just the hash).Rob Landley
(It's not like systems implementing -b binary and -t text still matter.)
2014-05-15Here's a quick cleanup of md5sum. Executive summary: smaller and faster.Daniel Verkamp
On my machine, for a 2.2 GB file of random bytes, the timings with warm cache are: toybox before: 11.4 seconds toybox after: 8.3 seconds GNU md5sum: 3.9 seconds openssl dgst -md5: 3.5 seconds This is clearly better than before (3x openssl), but still slow (2x openssl). I suspect there is more low-hanging fruit to be had by eliminating the memcpy in hash_update (maybe not too much - hash_update accounts for about 4% of total runtime versus 92% for md5_transform according to perf - but this would also help sha1sum). make bloatcheck on x86_64 gcc 4.8.2 -Os: name old new delta ----------------------------------------------------------------------- md5rot 0 64 64 md5_transform 365 223 -142 ----------------------------------------------------------------------- -78 total Rationale for the changes: Move definition of 'rol' up so it can be used in md5_transform. This is purely cosmetic; it expands to exactly the same code. Put rotation counts in a lookup table instead of calculating them on the fly. This is mostly a wash size-wise, +5 bytes total, but worthwhile for readability and speed. Instead of accessing the state array using a rotating index (the variable formerly known as 'a'), access the state with constant offsets and rotate the contents of the array instead. This is the big win - it eliminates all the crazy memory addressing math inside the loop.
2012-11-13Reindent to two spaces per level. Remove vi: directives that haven't worked ↵Rob Landley
right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style. The actual code should be the same afterward, this is just cosmetic refactoring.
2012-11-03Make sha1sum and md5sum default to y.Rob Landley
2012-10-23Add md5sum in lsb, combine sha1sum (mostly shared infrastructure). Downside: ↵Rob Landley
current infrastructure can't give them different help text. Hmmm...