]> granicus.if.org Git - cracklib/commitdiff
patch from Ben Karsin for improved repetition/systematic checking
authorNathan Neulinger <nneul@neulinger.org>
Tue, 2 Mar 2010 02:50:08 +0000 (02:50 +0000)
committerNathan Neulinger <nneul@neulinger.org>
Tue, 2 Mar 2010 02:50:08 +0000 (02:50 +0000)
git-svn-id: file:///tmp/cracklib-svn/trunk@161 4175fe1e-86d5-4fdc-8e6a-506fab9d8533

cracklib/NEWS
cracklib/lib/fascist.c

index 69863420be4cf11a6d5d0bddffd88ffffd69e113..a4be045644fda7ebaa52ea930a91515ad9410a61 100644 (file)
@@ -6,7 +6,8 @@ v2.8.16 update licensing information in Python extension (Jan Dittberner)
         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)
+        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
index b4d62b34cdb66df5ac0dfb8a145277167f51e8a4..e61ea497228a31749919cb7c44d6829807bfef03 100644 (file)
@@ -32,7 +32,6 @@ typedef unsigned short uint16_t;
 
 #define MINDIFF 5
 #define MINLEN 6
-#define MAXSTEP 4
 
 #undef DEBUG
 #undef DEBUG2
@@ -707,7 +706,7 @@ FascistLook(pwp, instring)
     PWDICT *pwp;
     char *instring;
 {
-    int i;
+    int i,maxrepeat;
     char *ptr;
     char *jptr;
     char junk[STRINGSIZE];
@@ -774,7 +773,10 @@ FascistLook(pwp, instring)
        ptr++;
     }
 
-    if (i > MAXSTEP)
+    /*  Change by Ben Karsin from ITS at University of Hawaii at Manoa.  Static MAXSTEP 
+        would generate many false positives for long passwords. */
+    maxrepeat = 3+(0.09*strlen(password));
+    if (i > maxrepeat)
     {
        return _("it is too simplistic/systematic");
     }