Disc Wipe
Notes: This version can now do recursive directory wipes in Windows, as well as
do 7-pass wiping. The 7-pass wiping follows a similar method of wiping as the
3-pass, however it adds in two more random character passes, and a second set of
0x00 and 0xff passes as well. Look in wipe.c to see the exact order they are
performed in. Directory wiping in both Windows and UNIX will work transparently.
Just pass the directory name on the command line like you do files and devices,
and it will walk the entire directory tree opening any files, devices, and other
directories it finds to wipe them all. If you are wiping a large directory tree,
you should probably increase your file descriptor count quite a bit to
compensate. However, remember that file wiping is not nearly as reliable as
wiping the device, because now we must rely on the file system to actually write
to the physical disk what we wrote to the file, in the exact positition the
sensitive data is, otherwise the data is still there, and newer file systems
(especially journaling) really screw this up.

Easy compile, type:
make (or: make static) (if using GNU make)
make strip (optional) (if using GNU make)
make -f Makefile.bsd-wrapper (if using BSD make)

This program is licensed under an ISC-style license, for copying and/or
distribution, please read the LICENSE file or, if you have source code, read the
license in the begining of each source and header file. Realize that this
program comes with NO WARRENTY what-so-ever, and any damage caused to your
system is your own fault.

Also note that this program contains some code written and owned by other
people. Please read the README.contrib file for more information about that or
for information on contributing your own code to disc wipe. To compile this code
using other means than the two make files provided, you must pass the equivilant
of the -I option to the compiler to look in the base directory for source files
in the contrib dir, or they won't be able to find dwipe.h and the compile will
fail.

Be very careful when using this program, it will wipe your device clean of any
data beyond recovery, following the US DoD 5220.22-M spec.

I have written this code with two goals in mind, portability and optimization.
A list of systems and compilers that this program has been confirmed to work on
follows this paragraph. If you can compile/run this program on any other
systems/compilers, please let me know so I can add it to the list. More
importantly, if it doesn't work on any systems/compilers, please let me know so
I can get this program to compile/work, making it even more portable. This code
is also written to try to be as optimized as possible while not sacrificing any
portability, so anyone can use it.

Systems: Compilers: - Tester (email)
 OpenBSD 3.9/i386:		gcc 3.3.5
 Gentoo Linux/i386:		gcc 3.3.6
 Gentoo Linux/i386:		gcc 3.4.6
 Mac OS X.4 Tiger PPC:		gcc 4.0.0
 Windows XP SP2/i386:		Visual Studio .NET
 Windows XP SP2/i386:		lcc win32-3.2	- James Boutwell (munkie@gmail.com)
 Windows XP SP2/i386:		MinGW 4.1	- Andreas Göb (info@goeb.org)
 Windows XP SP2/i386:		MinGW 5.0.2	- Andreas Göb (info@goeb.org)
 FreeBSD 5.3/i386:		gcc 3.4.2	- James Boutwell (munkie@gmail.com)
 Kubuntu Linux 6.06/i386:	gcc 4.0.3	- Andreas Göb (info@goeb.org)

Note: The testers are named here with their permision. If you can show me logs
 that confirm disc wipe has worked on the system/compiler you used, and want to
 be named, send me an email to include your system, compiler, name and email in
 this README file. If you don't want to be named, just show me the logs of it
 working and I'll put Anonymous as the tester.

Note: use raw devices where-ever possible.

To contact me (Jason Crawford) please email me at: jason@purebsd.net
