The sb-md5
module implements the RFC1321 MD5 Message Digest
Algorithm. [FIXME cite]
Calculate the MD5 message-digest of the file designated by pathname.
Calculate the MD5 message-digest of data bounded by
start
andend
insequence
, which must be a vector with element-type (UNSIGNED-BYTE 8).
Calculate an MD5 message-digest of the contents of
stream
, whose element-type has to be (UNSIGNED-BYTE 8).
Calculate the MD5 message-digest of the binary representation of
string
(as octets) inexternal-format
. The boundariesstart
andend
refer to character positions in the string, not to octets in the resulting binary representation.
The implementation for CMUCL was largely done by Pierre Mai, with help
from members of the cmucl-help
mailing list. Since CMUCL and
SBCL are similar in many respects, it was not too difficult to extend
the low-level implementation optimizations for CMUCL to SBCL.
Following this, SBCL's compiler was extended to implement efficient
compilation of modular arithmetic (see Modular arithmetic), which
enabled the implementation to be expressed in portable arithmetical
terms, apart from the use of rotate-byte
for bitwise rotation.