packages icon
This directory contains source code for the MD5 message-digest algorithm.

MD5.tar.Z is a compressed tar file of all the other files in this directory.

"md5-announcement.txt" is the announcement from RSA Data Security that
MD5 is being placed in the public domain for free general use.

"rfc1321.txt" is the RFC that describes in detail the MD2, MD4, and MD5
message-digest algorithms.

The *.[ch] files were taken exactly from RFC 1321.
I wrote a simple Makefile to build an md5 executable by default,
with targets for "test" (which implements the test in Appendix A.5 in the RFC)
and "clean".  Running Makefile with no targets will build the "md5" binary.

There is a typo in the RFC Appendix A.4 (mddriver.c).
Line 20 sets MD to "MD5" by default, but the code wants
MD to be set to one of "2", "4", or "5".
I put a -DMD=5 in the Makefile to mask this problem so that the
code itself remains unchanged from what is in RFC 1321.

Ric Anderson, ric@Artisoft.COM, provided a bug fix to the timing test
code that caused a divide by zero aborts on a Sun sparc station-10
running soalris 2.3.  This fix to mddriver.c is the only change to the
code in RFC 1321 and corrects only a problem with the timing tests.
No change to the code that implements the actual checksum has been made.

Ric has also provided a man page - "md5.1".  A postscript version
of this man page is in "md5.1.ps" and a text version in "md5.1.txt".

				-- Jim Ellis (jte@cert.org)