Next: , Previous: sb-grovel, Up: Contributed Modules



13.3 sb-md5

The sb-md5 module implements the RFC1321 MD5 Message Digest Algorithm. [FIXME cite]

— Function: sb-md5:md5sum-file

Calculate the MD5 message-digest of the file specified by pathname.

— Function: sb-md5:md5sum-sequence

Calculate the MD5 message-digest of data in sequence. On cmu cl this works for all sequences whose element-type is supported by the underlying MD5 routines, on other implementations it only works for 1d simple-arrays with such element types.

— Function: sb-md5:md5sum-stream

Calculate an MD5 message-digest of the contents of stream. Its element-type has to be either (unsigned-byte 8) or character.

13.3.1 Credits

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.