?????????? ????????? - ??????????????? - /home/agenciai/public_html/cd38d8/cracklib.tar
???????
README-LICENSE 0000644 00000032455 15125630352 0006517 0 ustar 00 ----------- EFFECTIVE OCT 2008, LICENSE IS BEING CHANGED TO LGPL-2.1 (though not reflected in released code until Nov 2009 - slow release cycle...) ----------- Discussion thread from mailing list archive, with approval from everyone actively involved or holding original licensing rights included. [Cracklib-devel] cracklib license From: Mike Frysinger <vapier@ge...> - 2007-10-02 01:16 Attachments: Message as HTML looks like 2.8.11 is out and marked as "GPL-2" ... releasing libraries unde= r=20 GPL-2 is not desirable at all ... this is why the LGPL-2.1 exists =2Dmike Re: [Cracklib-devel] cracklib license From: Neulinger, Nathan <nneul@um...> - 2007-10-02 01:18 I understand that, and you're welcome to bring it up with Alec directly and see if he wants to relicense his code as LGPL... but at this point, it was enough to just get it consistent and documented as to what it was released under. This wasn't actually a license change, just a clarification of the licensing that was already in place.=20 -- Nathan =20 ------------------------------------------------------------ Nathan Neulinger EMail: nneul@um... University of Missouri - Rolla Phone: (573) 341-6679 UMR Information Technology Fax: (573) 341-4216 > -----Original Message----- > From: cracklib-devel-bounces@li... > [mailto:cracklib-devel-bounces@li...] On Behalf Of > Mike Frysinger > Sent: Monday, October 01, 2007 8:15 PM > To: cracklib-devel@li... > Subject: [Cracklib-devel] cracklib license >=20 > looks like 2.8.11 is out and marked as "GPL-2" ... releasing > libraries under > GPL-2 is not desirable at all ... this is why the LGPL-2.1 exists > -mike Re: [Cracklib-devel] cracklib license From: Mike Frysinger <vapier@ge...> - 2007-10-02 01:33 Attachments: Message as HTML On Monday 01 October 2007, Neulinger, Nathan wrote: > I understand that, and you're welcome to bring it up with Alec directly > and see if he wants to relicense his code as LGPL... but at this point, > it was enough to just get it consistent and documented as to what it was > released under. This wasn't actually a license change, just a > clarification of the licensing that was already in place. the original license (before moving to sourceforge -- aka, 2.7) was not=20 GPL-2 ... it was a modified artistic license ... i didnt notice the license= =20 change until it was mentioned in the latest notes. unlike the old license, GPL-2 prevents people from using cracklib unless th= eir=20 applications are also GPL-2 which imo is just wrong. it isnt the place of = a=20 library to dictact to application writes what license they should be using.= =20 thus LGPL-2.1 enters to fill this void. =2Dmike Re: [Cracklib-devel] cracklib license From: Neulinger, Nathan <nneul@um...> - 2007-10-02 01:46 Seems like the ideal thing here would be for you and the other distro maintainers to get together with Alec in a conversation and come to a decision as to what licensing scheme y'all want. I haven't really done much other than cleaning up the packaging and patches and a small bit of additional code, so whatever licensing y'all come up with is fine by me. -- Nathan =20 ------------------------------------------------------------ Nathan Neulinger EMail: nneul@um... University of Missouri - Rolla Phone: (573) 341-6679 UMR Information Technology Fax: (573) 341-4216 > -----Original Message----- > From: cracklib-devel-bounces@li... > [mailto:cracklib-devel-bounces@li...] On Behalf Of > Mike Frysinger > Sent: Monday, October 01, 2007 8:33 PM > To: Neulinger, Nathan > Cc: cracklib-devel@li...; Alec Muffett > Subject: Re: [Cracklib-devel] cracklib license >=20 > On Monday 01 October 2007, Neulinger, Nathan wrote: > > I understand that, and you're welcome to bring it up with Alec > directly > > and see if he wants to relicense his code as LGPL... but at this > point, > > it was enough to just get it consistent and documented as to what > it was > > released under. This wasn't actually a license change, just a > > clarification of the licensing that was already in place. >=20 > the original license (before moving to sourceforge -- aka, 2.7) was > not > GPL-2 ... it was a modified artistic license ... i didnt notice the > license > change until it was mentioned in the latest notes. >=20 > unlike the old license, GPL-2 prevents people from using cracklib > unless their > applications are also GPL-2 which imo is just wrong. it isnt the > place of a > library to dictact to application writes what license they should > be using. > thus LGPL-2.1 enters to fill this void. > -mike Re: [Cracklib-devel] cracklib license From: Alec Muffett <alecm@cr...> - 2007-10-02 08:57 > Seems like the ideal thing here would be for you and the other distro > maintainers to get together with Alec in a conversation and come to a > decision as to what licensing scheme y'all want. I haven't really done > much other than cleaning up the packaging and patches and a small > bit of > additional code, so whatever licensing y'all come up with is fine > by me. I am sympathetic. Guys, what do you reckon? What I am hearing so far is that LGPL makes sense, since it can be linked with any code, not just GPL... -a Re: [Cracklib-devel] cracklib license From: Devin Reade <gdr@gn...> - 2007-10-02 15:04 I would like to see it under LGPL as well. I think it is in everyone's best interests to have as secure systems as possible, and I think tainting it via GPL will just make it less likely that the library gets used, and will not usually cause companies/developers to GPL the dependent code (where it is not already GPL). I like GPL, I use it when I can, but I don't think that it's the correct license in this situation. Devin -- If it's sinful, it's more fun. Re: [Cracklib-devel] cracklib license From: Nalin Dahyabhai <nalin@re...> - 2008-01-28 16:32 On Tue, Oct 02, 2007 at 09:57:31AM +0100, Alec Muffett wrote: > > Seems like the ideal thing here would be for you and the other distro > > maintainers to get together with Alec in a conversation and come to a > > decision as to what licensing scheme y'all want. I haven't really done > > much other than cleaning up the packaging and patches and a small > > bit of > > additional code, so whatever licensing y'all come up with is fine > > by me. > > I am sympathetic. Guys, what do you reckon? > > What I am hearing so far is that LGPL makes sense, since it can be > linked with any code, not just GPL... My apologies for not chiming in in anything resembling a reasonable timeframe. I'd also suggest the LGPL, for the reason you noted above. Alternately, GPLv2 with the option of using the library under a later version of the GPL would permit applications which were released under version 3 of the GPL to use the library, too, which would be sufficient for the packages which are included in Fedora. FWIW, I'd personally lean toward LGPL. In any case, I thank you both for working on sorting this out. Cheers, Nalin Re: [Cracklib-devel] cracklib license From: Mike Frysinger <vapier@ge...> - 2008-10-05 21:27 Attachments: Message as HTML On Monday 28 January 2008, Nalin Dahyabhai wrote: > On Tue, Oct 02, 2007 at 09:57:31AM +0100, Alec Muffett wrote: > > > Seems like the ideal thing here would be for you and the other distro > > > maintainers to get together with Alec in a conversation and come to a > > > decision as to what licensing scheme y'all want. I haven't really done > > > much other than cleaning up the packaging and patches and a small > > > bit of > > > additional code, so whatever licensing y'all come up with is fine > > > by me. > > > > I am sympathetic. Guys, what do you reckon? > > > > What I am hearing so far is that LGPL makes sense, since it can be > > linked with any code, not just GPL... > > My apologies for not chiming in in anything resembling a reasonable > timeframe. > > I'd also suggest the LGPL, for the reason you noted above. Alternately, > GPLv2 with the option of using the library under a later version of the > GPL would permit applications which were released under version 3 of the > GPL to use the library, too, which would be sufficient for the packages > which are included in Fedora. FWIW, I'd personally lean toward LGPL. > > In any case, I thank you both for working on sorting this out. looks like everyone is OK with LGPL-2.1 (GNU Lesser license), so can we make the change now ? -mike Re: [Cracklib-devel] cracklib license From: Alec Muffett <alecm@cr...> - 2008-10-05 23:18 >> In any case, I thank you both for working on sorting this out. > > looks like everyone is OK with LGPL-2.1 (GNU Lesser license), so can we make > the change now ? yes. go for it. thanks++ -a Re: [Cracklib-devel] cracklib license From: Mike Frysinger <vapier@ge...> - 2008-10-25 22:34 Attachments: Message as HTML On Sunday 05 October 2008, Alec Muffett wrote: > >> In any case, I thank you both for working on sorting this out. > > > > looks like everyone is OK with LGPL-2.1 (GNU Lesser license), so can we > > make the change now ? > > yes. go for it. thanks++ Nathan Neulinger is the only one who can actually make said change ... -mike ----------- BELOW IS ORIGINAL LICENSING DISCUSSION RE CHANGING TO GPL from Artistic. ----------- CrackLib was originally licensed with a variant of the Artistic license. In the interests of wider acceptance and more modern licensing, it was switched with the original author's blessing to GPL v2. This approval was carried out in email discussions in 2005, and has been reconfirmed as of 2007-10-01 with the following email from Alec Muffett. The below email references nneul@umr.edu address, as that is the address that was used at the time. For any future emails regarding this, please use nneul@neulinger.org. ------------------------------------- From alecm@crypticide.com Mon Oct 1 12:26:03 2007 Received: from umr-exproto2.cc.umr.edu ([131.151.0.192]) by UMR-CMAIL1.umr.edu with Microsoft SMTPSVC(6.0.3790.3959); Mon, 1 Oct 2007 12:26:03 -0500 Received: from scansrv2.srv.mst.edu ([131.151.1.114]) by umr-exproto2.cc.umr.edu with Microsoft SMTPSVC(6.0.3790.3959); Mon, 1 Oct 2007 12:26:02 -0500 Received: (qmail 8022 invoked from network); 1 Oct 2007 16:59:55 -0000 Received: from smtp1.srv.mst.edu (131.151.1.43) by scanin-ipvs.cc.umr.edu with SMTP; 1 Oct 2007 16:59:55 -0000 Received: from spunkymail-mx8.g.dreamhost.com (mx1.spunky.mail.dreamhost.com [208.97.132.47]) by smtp1.srv.mst.edu (8.13.1/8.13.1) with ESMTP id l91Gxtpr020623 for <nneul@umr.edu>; Mon, 1 Oct 2007 11:59:55 -0500 Received: from rutherford.zen.co.uk (rutherford.zen.co.uk [212.23.3.142]) by spunkymail-mx8.g.dreamhost.com (Postfix) with ESMTP id 2C7734D311 for <nneul@neulinger.org>; Mon, 1 Oct 2007 09:59:50 -0700 (PDT) Received: from [82.68.43.14] (helo=[192.168.1.3]) by rutherford.zen.co.uk with esmtp (Exim 4.50) id 1IcOcX-0004Qt-6L for nneul@neulinger.org; Mon, 01 Oct 2007 16:59:49 +0000 Mime-Version: 1.0 (Apple Message framework v752.2) In-Reply-To: <1b1b3fd80710010908k11dac0afp1f2dd471059ff9a4@mail.gmail.com> References: <1190922867.3457.147.camel@localhost.localdomain> <EC90713277D2BE41B7110CCD74E235CEF44F38@UMR-CMAIL1.umr.edu> <1b1b3fd80710010908k11dac0afp1f2dd471059ff9a4@mail.gmail.com> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <117A1264-F6DC-4E25-B0DD-56FBFEBE6E9F@crypticide.com> Content-Transfer-Encoding: 7bit From: Alec Muffett <alecm@crypticide.com> Subject: Re: cracklib license Date: Mon, 1 Oct 2007 17:59:46 +0100 To: Nathan Neulinger <nneul@neulinger.org> X-Mailer: Apple Mail (2.752.2) X-Originating-Rutherford-IP: [82.68.43.14] Return-Path: alecm@crypticide.com X-OriginalArrivalTime: 01 Oct 2007 17:26:03.0008 (UTC) FILETIME=[2420C000:01C80450] Status: RO Content-Length: 585 Lines: 21 > > ---------- Forwarded message ---------- > From: Neulinger, Nathan <nneul@umr.edu> > Date: Sep 27, 2007 2:58 PM > Subject: RE: cracklib license > To: alecm@crypto.dircon.co.uk > > Any chance you could write me a self-contained email stating clearly > that the license is being changed to GPL, so I could include that > email > in the repository and clean up the repository/tarballs? I have all the > original discussion, but something succinct and self contained > would be > ideal. The license for my code in the Cracklib distribution is henceforth GPL. Happy now? :-) -a README-WORDS 0000644 00000001601 15125630352 0006320 0 ustar 00 A tiny example wordlist is included with the cracklib package itself. A very large dictionary suitable for use with cracklib is also available from the cracklib sourceforge download page. http://prdownloads.sourceforge.net/cracklib/cracklib-words.gz?download Other sources for word lists include: http://wordlist.sourceforge.net/ http://www.openwall.com/wordlists/ Please note, the licenses on some of those word lists are restrictive, so please read the licenses before redistributing them. The cracklib-words distribution from the cracklib sourceforge project page has been built solely from word lists previously distributed with cracklib or crack packages and/or public domain word lists. For best results, supply cracklib with as large a wordlist as you have available to you - blackhats brute forcing passwords have those same lists, might as well use it to benefit your security. NEWS 0000644 00000013345 15125630352 0005253 0 ustar 00 v2.9.6 updates to cracklib-words to add a bunch of other dictionary lists migration to github patch to add some particularly bad cases to the cracklib small dictionary (Matthew Miller) patch to fix issue with sort and locale (Mark Sirota) v2.9.5 fix matching against first password in dictionary (Anton Dobkin) v2.9.4 remove doubled prototype v2.9.3 expose additional functions externally v2.9.2 support build of python support outside of source tree (Michał Górny) fix bug in Python string distance calculation (Pascal Muetschard) fix bug #16 / debian bug 724570 - broken optimization with packlib prevblock (Russ Allbery) v2.9.1 added updated config.sub/config.guess in autogen v2.9.0 add new FascistCheckUser function from Enrico Scholz, bumped minor version for library v2.8.22 error return instead of exit if dictionary can't be opened (Nalin Dahyabhai) v2.8.21 export prototype for FascistLook (Nalin Dahyabhai) v2.8.20 include python/test_cracklib.py in release tarball (Jan Dittberner) rename python/_cracklibmodule.c to python/_cracklib.c to support Python 3.3 (Jan Dittberner) patch from Ivosh (iraisr) for uninitialized buffer issue with small dictionaries. v2.8.19 drop autogenerated files from SVN (Mike Frysinger) add words from "The Top 500 Worst Passwords of All Time" <http://www.whatsmypass.com/the-top-500-worst-passwords-of-all-time> to dicts/cracklib-small (patch by Fabian Greffrath) include sys/stat.h in python/_cracklibmodule.c (Mike Frysinger) add test suite for Python binding (Jan Dittberner) port Python binding to Python3 (Jan Dittberner) v2.8.18 also include stdlib.h in stringlib.c (Mike Frysinger) make sure python lib builds against build dir instead of system installed libs (Arfrever Frehtes Taifersar Arahesis) v2.8.17 fixed compilation on interix systems updated Hindi translation (Rajesh Ranjan) fixed NLS issue in cracklib-check add Ukrainian translation (Yuri Chornoivan) fix segmentation fault in Python extension (Peter Palfrader) add -Wall to AM_CFLAGS to discover possible programming errors (Jan Dittberner) updated Wei Liu (zh_CN) translation (Leah Liu) fixed NLS support in python module compilation (Mike Frysinger) v2.8.16 update licensing information in Python extension (Jan Dittberner) make translations work in Python extension (Jan Dittberner) fix Python extension compilation warning (Jan Dittberner) add a long description to Python extension (Jan Dittberner) add Hindi translation (Rajesh Ranjan) add Korean translation (Eunju Kim) updated Russian translation (Yulia Poyarko) fix filename output in Python exceptions (Nalin Dahyabhai) fix format strings in util/packer.c (Mike Frysinger) improvement to rules based checking in fascist.c for better checking of closely related letter pairs (Ben Karsin) v2.8.15 allow building of Python extension outside source folder (Jan Dittberner) fix type on Python extension's trove classifier reflect license change discussion that was never actually implemented in the repository and update to LGPL v2.8.14 Added Assamese translation (Amitakhya Phukan) Added Bengali India translation (Runa Bhattacharjee) Added Gujarati translation (Ankit Patel) Added Kannada translation (shankysringeri) Added Malayalam translation (Ani Peter) Added Marathi translation (Sandeep Shedmake) Added Oriya translation (Manoj Giri) Added Russian translation (Anton Dobkin) Added Tamil translation (I. Felix) Added Telugu translation (Krishna Babu) Updated Polish translation (Piotr Drąg) Updated Panjabi translation (A S Alam) optimize order of commands in util/cracklib-format (Jan Dittberner, Debian) fix several CC warnings (Jan Dittberner, Debian) add a function GetDefaultCracklibDict() to libcrack bump library revision add python/setup.py.in to allow building eggs v2.8.13 Compressed dictionary support and better python module v2.8.11 Better create-cracklib-dict helper script (Mike Frysinger) v2.8.10 Patch for better hanlding of cracklist dictionary paths in python binding. (Nalin Dahyabhai) v2.8.8 Some shell quoting fixups for build scripts (Mike Frysinger) v2.8.7 Add support for NLS builds on FreeBSD v2.8.6 Add some sanity checkng to auto* script calls. (Mike Frysinger) Add support for cross compiling with a local dictionary Add a configure option to control default dictionary path Adjustments to prototypes to use const, and more language support. (Thorsten Kukuk <kukuk@suse.de>) v2.8.5 Patches for python build and missing config.rpath v2.8.4 Patches for mod_php build issues Full localization of strings thanks to Thorsten Kukuk. Patches for python binding support thanks to Nalin Dahyabhai v2.8.3 Deal with integer type and header portability issues v2.8.2 Check for LINE_MAX, cygwin workaround (sf patch #125964, Jürgen) Fix a buffer overflow in packlib file handling (not a security issue) patch provided as #126097 by Jürgen v2.8.1 Install packer.h, php needs it, and address prototypes v2.8 new package, auto'ified with libtool and numerous bug fixes, forked from original v2.7 distribution with the approval of the author v2.7 mkdict/tr problem eliminated; misc fixes suggested by Andrey Savochkin <saw@msu.ru> (with thanks) v2.6 buffer overflow problems addressed - 1st attempt permutations of fascist deconstructors fixed/enhanced v2.5 added decent info to the "shadow" directory patches. v2.4 forwarded to ch & jfh3 for beta testing/comments v2.3- internal beta test versions AUTHORS 0000644 00000000402 15125630352 0005612 0 ustar 00 Nathan Neulinger <nneul@neulinger.org> version 3.0 modifications and new release Alec Muffett <alecm@crypto.dircon.co.uk> Original CrackLib author for releases up to v2.7 Numerous others has provided patches included in both this and previous releases. README 0000644 00000023375 15125630352 0005440 0 ustar 00 This package is an updated/modernized distribution of CrackLib as previously release by Alec Muffett. Pretty much all of the files have been modified in some way to allow for this modernization and to apply numerous bug fixes and patches. Copyright in the original source is assigned to Alec Muffett, numerous authors have contributed the patches applied to these sources, and are included here without attribution as there are no good records. The primary reason for the updated release was to apply bug fixes and get them distributed from some central place instead of trying to get all of the various repackagers to apply additional packages. BUILD/INSTALL NOTE: You must 'make dict', preferably after getting a large wordlist, after install. Otherwise it will not install the dictionaries. This is left as a manual step since on some systems generating the dictionary index can be time consuming. ============================ Original CrackLib 2.7 README ============================ CrackLib: A ProActive Password Sanity Library By: Alec Muffett Address: alecm@crypto.dircon.co.uk Date: Sun Dec 14 22:16:48 GMT 1997 - This software is not my fault in any way, nor indeed anybody's - *** What is CrackLib *** CrackLib is a library containing a C function (well, lots of functions really, but you only need to use one of them) which may be used in a "passwd"-like program. The idea is simple: try to prevent users from choosing passwords that could be guessed by "Crack" by filtering them out, at source. CrackLib is an offshoot of the the version 5 "Crack" software, and contains a considerable number of ideas nicked from the new software. At the time of writing, Crack 5 is incomplete (still awaiting purchase of my home box) - but I though I could share this with you. [ Incidentally, if Dell or anyone would like to "donate" a Linuxable 486DX2-66MHz box (EISA/16Mb RAM/640MB HD/AHA1740) as a development platform for Crack, I'd be more than grateful to hear from you. 8-) ] NOTE THIS WELL: CrackLib is NOT a replacement "passwd" program. CrackLib is a LIBRARY. CrackLib is what trendy marketdroid types would probably call an "enabler". The idea is that you wire it into your _own_ "passwd" program (if you have source); alternatively, you wire it into something like "shadow" from off of the net. You can use it in other things, too. You can use it almost _everywhere_. *** Advantages of CrackLib *** 1) it WORKS! I wrote something similar ("goodpass") a few years back, which went out with Crack v3.x. Goodpass was slow and buggy and I think it was used (at least in part) in "npasswd". Hopefully, CrackLib will supplant "goodpass" entirely. 2) it's FAST! CrackLib finds potential passwords quickly, by using an index file to access dictionary words, and by keeping a table to assist binary searching. 3) it's SMALL! CrackLib's dictionary is modified-DAWG compressed with a chunksize of 16 words (see Crack v5.0 docs (when it comes out) for details) - and then the index file is built, with one entry per chunk. The upshot of all this is that CrackLib can do indexed, binary searches in a 1.4 million word dictionary (raw size ~ 15Mb), but the CrackLib files (data+index+watermarks) occupy only ~ 7Mb. (45% original size) It's even efficient over NFS ! 4) it's MIND-NUMBINGLY THOROUGH! (is this beginning to read like a B-movie flyer, or what?) CrackLib makes literally hundreds of tests to determine whether you've chosen a bad password. * It tries to generate words from your username and gecos entry to tries to match them against what you've chosen. * It checks for simplistic patterns. * It then tries to reverse-engineer your password into a dictionary word, and searches for it in your dictionary. - after all that, it's PROBABLY a safe(-ish) password. 8-) *** Instructions for building CrackLib... STEP 0) Engage your brain. I'm interested in improving the CrackLib software, doing bugfixes, "guessing technique" improvements, and portability enhancements. I'm NOT interested in unhelpful comments like "well, _my_ operating system doesn't come with a dictionary". If it doesn't, either complain to your vendor, or GO AND GET a dictionary off the net. CrackLib is NOT a TOOL. It is not a complete package. It is not something you can utilise directly. It is a resource, an aid, something to enhance the functionality of other software. You need to (either) write OR modify other software to use it. If you can't do this, then you shouldn't be wasting your time with it. Regarding bugs and portability problems: please try to work them out for yourself, and then (please) TELL me about them. This will help me improve future versions. STEP 1) Edit the Makefile to set your preferred value of DICTPATH This it the directory+filename-prefix that your version of CrackLib will go hunting for, and it must be visible to all programs on all hosts that use CrackLib Hence, if you want to use a CrackLib binary on a distributed network, these files are probably best placed on an NFS server. Note: You have to specify a FILENAME PREFIX too, eg: DICTPATH=/usr/local/lib/pw_dict which will generate: /usr/local/lib/pw_dict.pwd /usr/local/lib/pw_dict.pwi /usr/local/lib/pw_dict.hwm which are the files that CrackLib needs. These files are NOT byte-order independent, in fact they are probably ARCHITECTURE SPECIFIC, mostly due to speed constraints. If this is a problem, I suggest you use: DICTPATH=/usr/local/lib/pw_dict.sun4 DICTPATH=/usr/local/lib/pw_dict.i386 DICTPATH=/usr/local/lib/pw_dict.cray ...etc, and build several sets of files, as appropriate. (Hackers Note: Strictly, only *.pwi and *.hwm should be architecture dependent; however, if you build two dictionaries on two different platforms, you MAY wind up with different *.pwd files too, due to incompatibilities in the std Unix utilities, or from using different SOURCEDICTs. I may try to work this out in the next release. In the mean time, if your *.pwd files are EXACTLY identical (use "cmp" to test), you can delete the multiple copies and use softlinks instead.) STEP 2) Add to the SOURCEDICT variable, any files continaing extra words that you wish CrackLib to use. CrackLib merges all of these files together, removes redundant characters, and compresses them. Generally, the output file is 40..60% the size of all the input files, combined. NOTE: THE DEFAULT VALUE OF "SOURCEDICT" CONTAINS "/usr/dict/words" - this is a file which can be found on many BSD-type Unix systems, containing a list of words, one per line, suitable for use with "cracklib". If you do not have such a file, refer to STEP 0. STEP 3) do: % make all then do: % make install which will build the CrackLib dictionary in $DICTPATH. *** NOTE THIS WELL *** If you supply massive amounts of text to CrackLib to use a a dictionary, you must have enough free space available for use by the "sort" command, when the dictionary is built. So: If you do not have (say) about 20Mb free in /usr/tmp (or whatever temporary area your "sort" command uses), have a look at the "util/mkdict" script. You can usually tweak the "sort" command to use any large area of disk you desire, by use of the "-T" option, and "mkdict" has a hook for this. STEP 4) Wire a call to "FascistCheck()" into your "passwd" program - Left as an exercise for the reader. *** Example of how to invoke CrackLib Insert a call to the routine FascistCheck, which is defined thusly: NAME FascistCheck - check a potential password for guessability SYNOPSIS char *FascistCheck(char *pw, char *dictpath); DESCRIPTION FascistCheck() takes 2 arguments: pw - a string continaing the users chosen "potential password" dictpath - the full path name + filename prefix of the CrackLib dictionary, specified in the installation Makefile. (If you still haven't sussed, I'm talking about DICTPATH). RETURN VALUE FascistCheck() returns the NULL pointer for a good password, or a pointer to a diagnostic string if it is a bad password. BUGS - it can't catch everything. Just most things. - it calls getpwuid(getuid()) to look up the user, this MAY affect poorly written programs - using more than one pw_dict file, eg: char *msg; if (msg = FascistCheck(pw, "onepath") || msg = FascistCheck(pw, "anotherpath")) { printf("Bad Password: because %s\n", msg); } ...works, but it's a kludge. AVOID IT IF POSSIBLE. Using just the one dictionary is more efficient, anyway. - PWOpen() routines should cope with having more than 1 dictionary open at a time. I'll fix this RSN. WORKED EXAMPLE ---- modified extract from BSD distribution - "local_passwd.c" ---- #ifndef CRACKLIB_DICTPATH /* if possible, get from the same Makefile as CrackLib */ #define CRACKLIB_DICTPATH "/usr/local/lib/pw_dict" #endif /* see examples on how to import DICTPATH into CRACKLIB_DICTPATH */ ... ... ... for (buf[0] = '\0', tries = 0;;) { p = getpass("New password:"); if (!*p) { (void)printf("Password unchanged.\n"); pw_error(NULL, 0, 0); } #ifndef CRACKLIB_DICTPATH if (strlen(p) <= 5 && (uid != 0 || ++tries < 2)) { (void)printf("Please enter a longer password.\n"); continue; } for (t = p; *t && islower(*t); ++t); if (!*t && (uid != 0 || ++tries < 2)) { (void)printf("Please don't use an all-lower case password.\nUnusual capitalization, control characters or digits are suggested.\n"); continue; } #else { char *msg; if (msg = (char *) FascistCheck(pwbuf, CRACKLIB_DICTPATH)) { printf("Please use a different password.\n"); printf("The one you have chosen is unsuitable because %s.\n", msg); continue; /* go round and round until they get it right */ } } #endif /* CRACKLIB_DICTPATH */ (void)strcpy(buf, p); if (!strcmp(buf, getpass("Retype new password:"))) break; (void)printf("Mismatch; try again, EOF to quit.\n"); } ---- end of extract ---- pw_dict.pwi 0000644 00001677540 15125645604 0006752 0 ustar 00 1VwpO� y � N � � V � 7 � I � X � , � � 0 � � � � � � � � y � � $ { � E � } � � � ( � � , � � � � s � - j � M � � - � � ! P! �! �! )"