                    radcheckpassword version 0.1           23rd October 2000
                    ============================
This program is designed to authenticate a username/password combination
as per the checkpassword system devised by Dan Bernstein, see
    http://pobox.com/~djb/checkpwd.html
for more details (and the man page for 'Vanilla' checkpassword).

I have also setup a web page for radcheckpassword, which you should checkout
for additional instructions,
    http://www.tic.ch/e-image/andrew/radcheckpassword/index.html

USE THIS SOFTWARE ENTIRELY AT YOUR OWN RISK: No warranty, express or
implied, is given, nor is there any guarantee that it is suitable for
your application.

Usage
=====
As per checkpassword, but in a single-UID setup. The executable is called
radcheckpassword.

A single-UID setup is typically where you have lots of users who you don't
want to have to setup individual system accounts for (I've seen some
systems 'Die' once you're up in the 10000's of users - adding a new system
user can take more than an hour). Instead, some sort of predictable hashing
is typically implemented to locate an individuals Maildir (or mbox).

If that's confused you, you may like to take a look at some systems that
work with hashing:
     VMailMgr
     vpopmail
     qmail-hashdir

Once you've compiled radcheckpassword (esp. see below, "Different
Architectures"), you'll need to configure it. In particular, you'll need a
/etc/radius.conf file on the machine using radcheckpassword. Find more
details on what goes in this file by referring to the libradius documentation
(on which radcheckpassword is built) - see the man page files radius.conf.5
and perhaps libradius.3 - both in the radcheckpassword source directory - or
find preformatted versions there: radius.conf.0 and libradius.0.

Different Architectures
=======================
At the time of writing, this program has been compiled and tested on both
Solaris 2.7 and Linux (SuSE 6.3 - uses kernel 2.2.13). It should be relatively
trouble-free for other platforms too. There are a few notes on different
architectures, however:
 - Linux: No alterations necessary beyond specifying the location of
   'Vanilla' checkpassword - see section below, "Compilation & Installation".
 - Solaris: You'll need to uncomment the line in radlib.h,
       /* #include "compatibility.h" */
   You'll also need to specify some extra libraries in the Makefile - see
   the comments there.
 - FreeBSD: I haven't tried compiling under FreeBSD, but since the libradius
   package on which radcheckpassword is based comes from FreeBSD, it should
   work. However, note that I've made changes for it to work on Linux
   and Solaris, which you may need to change back. In particular, you should
   probably replace radlib.c with radlib.c.orig. Oh, you may also need to
   take a look at the Makefile - the original one for libradius is
   Makefile.libradius.orig, which you may like to use as a starting point.

Compilation & installation
==========================
The program is actually supplied in patch form: You'll need to get hold of
the 'Vanilla' checkpassword-0.81 (see http://cr.yp.to/checkpwd.html). The
Makefile assumes that you put this in /usr/local/src/checkpassword-0.81,
but if that's not the case, just edit the Makefile accordingly. Note that
you don't need to compile 'Vanilla' checkpassword - just unpack it to
that location.

Compile this package with,
     make radcheckpassword
and install it (probably as root) in /usr/local/bin with,
     make install

*****************************************************************************
** This version of checkpassword has been adapted by Andrew Richards,      **
**    E-mail: andrew@tic.ch or Web: http://www.tic.ch/e-image/andrew/      **
** Advert: I offer qmail consultancy services - ich spreche auch Deutsch   **
*****************************************************************************
