MD5DEEP 
---------------------------------------------------------
Md5deep is a suite of tools to compute hashes, or message digests for any
number of files while optionally recursively digging through the directory
structure.  It can also take a list of known hashes and display the
filenames of input files whose hashes either do or do not match any of the
known hashes. Errors are reported to standard error. If no FILES are
specified, reads from standard input. 

Details on how to use md5deep are in the man page.

The MD5 algorithm is defined in RFC 1321:
http://www.ietf.org/rfc/rfc1321.txt

The SHA1 algorithm is defined in FIPS 180-1:
http://www.itl.nist.gov/fipspubs/fip180-1.htm

The SHA256 algorithm is defined FIPS 180-2:
http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf

The Tiger algorithm is defined at:
http://www.cs.technion.ac.il/~biham/Reports/Tiger/

The Whirlpool algorithm is defined at:
http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html




md5deep was written by Special Agent Jesse Kornblum, United States Air
Force Office of Special Investigations. Send all correspondence to
md5deep [at] jessekornblum [dot] com

This program is a work of the US Government. In accordance with 17 USC
105, copyright protection is not available for any work of the US
Government.  Lawyer to English translation: This program is PUBLIC DOMAIN.
Not only is this program not copyrighted, but IT CANNOT BE COPYRIGHTED BY
ANYBODY AT ANY TIME UNDER ANY CIRCUMSTANCES. 

There is NO warranty for this program; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. 




INSTALLATION INSTRUCTIONS 
---------------------------------------------------------

Instructions for Linux, Solaris, OS X, *BSD, and Windows are provided
below. For Windows, it's a LOT easier to just download the binary from
http://md5deep.sourceforge.net/#download, but instructions are also below.

Note that you will need to have root access to install md5deep in the
default location! If you would like to install md5deep somewhere else
or don't have root access, change the PREFIX variable in the Makefile.

To compile:

Linux:
$ make linux

OS X:
$ make mac

If you are compiling md5deep to run on a G5 Macintosh, you can use
the make macg5 directive instead. The resulting binary will run much
faster, but will ONLY run on G5 processors! 

Solaris:
$ make solaris

*BSD, and other Unicies:
$ make unix


To install, you must be root:

# make install

If you ever need to remove md5deep from your system:

# make uninstall


----------------------------------------------------------------------
COMPILING FOR MICROSOFT WINDOWS(R)

The easiest way to get md5deep for Windows is to download the binary
version. The current binary is available at: 

http://md5deep.sourceforge.net/#download

If you want to compile md5deep yourself, I recommend using the (Free)
MingGW compiler. 

First, obtain the MinGW toolkit from:  http://www.mingw.org/ Install MinGW
according to the documentation. You will also need the "make" and "strip"
components of mingw. Then change into the md5deep directory and enter: 

C:\md5deep\> make windows

(make is installed by default as \mingw\bin\mingw32-make. You may need to
type the whole long filename!)


----------------------------------------------------------------------
CROSS COMPILING FOR WINDOWS

The MinGW compiler can also be used to cross-compile md5deep for Win32 on
another platform. (I've used both linux and Mac OS X to make the Windows
builds!) The MinGW FAQ lists a script that downloads, configures, and
installs the MinGW compiler on a linux system:
http://www.mingw.org/mingwfaq.shtml#faq-cross

This script can get out of date and may require some tweaking to get right.
Mostly this means bumping up the version numbers of the files to be 
downloaded. On OS X you will also need the gettext package installed before
this script will work.

Once MinGW is installed on your linux system, edit the Makefile value for
CR_BASE with the $PREFIX you used for MinGW. Then just do: 

$ make cross

And you should have a working .exe executables for Win32.


----------------------------------------------------------------------
CYGWIN

Compiling md5deep using the Cygwin environment is *NOT* supported. Cygwin
does not contain the libgen library, which is required for md5deep. (There
is a version of libgen available at
http://anfaenger.de/cygwin/cygwin-1.5/libgen/ , but I don't know much
about it and can't vouch for its effectiveness or correctness.) If you
want to try using md5deep under Cygwin, you MUST install this libgen
library first. 

Next, you will need to add "-liberty" (without the quotes) to the LINK_OPT
directive at the top of the Makefile. 

With these two changes, it's possible to compile md5deep under Cygwin
using the "make unix" directive, but this is not recommended. Not only
will the resulting executable require the cygwin1.dll file to run, but the
output for each file will be in "cygdrive" notation, which takes up extra
space and may be confusing to those not familiar with the Cygwin
environment. 





Microsoft Windows is a registered trademark of the Microsoft Corporation.
