In all previous versions, if an update-md5-state call received a
sequence which exactly filled a partially filled buffer, then that
buffer block was ignored and the agregate data not updated.
Since the code in question was needlessly convoluted, rewrote those
sections to make them clearer. Added another test-suite to test whether
padding works correctly, when compared with md5sum.
o This takes on board comments by Raymond Toy, and drops optimizations
and implementation-specific cruft that isn't really needed.
o The code has been reorganized quite a bit, to better expose the
structure
o md5-checksum is renamed to md5-digest.
o Added doc-strings and comments where necessary, added documentation to
the file comment.
o Added md5sum-sequence function.
o Fixed restriction on <512MB of input, we now support unlimited amounts
of input, as required by the spec. Since this causes one possibly
bignum addition per call to update-md5-block, the user can revert
to the old behaviour by putting :md5-small-length on *features* prior
to compiling/loading the code.
o Added test suite that is contained in Appendix A.5 of RFC 1321.
using kernel:32bit-logical-* instead of the silly signed-byte acrobatics
that were previously needed to get the various logical and ash operations
optimized. Also added rudimentary file-comment.