/************************************************************************
 *   IRC - Internet Relay Chat, tools/README
 *   Copyright (C) 1991 Nelson Minar
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 3, or (at your option)
 *   any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *   $Id: README 1969 2007-06-30 10:09:22Z sirvulcan $
 */

The change implemented here is that the operator passwords in the ircd.conf
file are no longer stored in plaintext form, but are encrypted the same way
that user passwords are encrypted on normal UNIX systems. For example,
instead of having:

	O:nelson@nelson:goodboy:Nelson::10

in your ircd.conf file, you have:

	O:nelson@nelson:sCnvYRmbFJ7oI:Nelson::10

You still would type "/oper Nelson goodboy" to become operator. However,
if someone gets ahold of your ircd.conf file, they can no longer figure
out what the password for that oper is from reading it. There are still
other security holes, namely server-server passwords, but this closes one
very obvious problem.

So, how do you generate these icky looking strings for passwords?
There's a simple program called mkpasswd to do that for you. To
compile mkpasswd, just "make -f Makefile.crypt" in this directory. After it
compiles, just run mkpasswd, and at the prompt type in your plaintext 
password. It will spit out the encrypted password, which you should then 
just copy into your ircd.conf file. This should be done only when adding 
new passwords to your ircd.conf file. Crypting of oper passwords is 
automatically done with the new F:lines so there is nothing to enable to 
be able to use crypted oper passwords. All you have to do is edit the 
Makefile.crypt in this directory and change "IRCDCONF = 
/usr/local/lib/irc/ircd.conf" to the full path to your ircd.conf file. 
Then "make -f Makefile.crypt install" in this directory to replace all the 
operator passwords in your ircd.conf file with the encrypted format.

Choose your passwords carefully! Do NOT choose something in a
dictionary, make SURE it's at least 5 characters. Anything past 8
characters is ignored.

One thing to note about crypt() passwords - for every plaintext, there
are 4096 different passwords. Some valid encryptions of "goodboy"
include t1Ub2RhRQHd4g, sCnvYRmbFJ7oI and Xr4Z.Kg5tcdy6. The first
two characters (the "salt") determine which of the 4096 passwords
you will get. mkpasswd chooses the salt randomly, or alternately you 
can specify one on the command line.

see also - crypt(3)
