#!/usr/bin/perl #************************************************************************ #* IRC - Internet Relay Chat, tools/crypter #* Copyright (C) 1991 Sean Batt #* #* 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 1, 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: crypter,v 1.2 2002-03-07 22:52:57 ghostwolf Exp $ #*/ #From Sean Batt sean@coombs.anu.edu.au # #Temporary output file # $tmpfile = "/tmp/ircd.conf.tmp"; # #Original ircd.conf file # $ircdconf = @ARGV[0]; print "crypting ",$ircdconf,"\n"; @saltset = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '.', '/'); umask(0077); open ($ircdout, ">$tmpfile") || die "open $!"; while ($text = <>) { #if its not an "O" line we can ignore it $text =~ /^o/i || print ($ircdout $text) && next; chop($text); @oline = split(':', $text); $salt = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64]; $oline[2] = crypt(@oline[2], $salt); print ($ircdout join(':',@oline)."\n"); } close ($ircdout); close ($ircdin); print "/bin/cp ",$tmpfile," ",$ircdconf,"\n"; (fork()==0) ? exec("/bin/cp", $tmpfile, $ircdconf) : wait; print "",$ircdconf," has been crypted successfully!\n"; #unlink($tmpfile);