Package: userdir-ldap-cgi
Architecture: all
-Depends: userdir-ldap, perl5, libnet-ldap-perl, libcrypt-blowfish-perl, gnupg (>= 1.0.3), libdate-manip-perl, liburi-perl, libio-socket-ssl-perl, libossp-uuid-perl, libdigest-hmac-perl, python, python-crack, cracklib-runtime
+Depends: userdir-ldap, perl5, libnet-ldap-perl, libcrypt-blowfish-perl, gnupg (>= 1.0.3), libdate-manip-perl, liburi-perl, libio-socket-ssl-perl, libossp-uuid-perl, libdigest-hmac-perl, python, python-crack | python-cracklib, cracklib-runtime
Recommends: wamerican, wamerican-large, wamerican-small, wbritish, wbritish-large, wbritish-small, wbulgarian, wcanadian, wcanadian-large, wcanadian-small, wcatalan, wdanish, wdutch, wfaroese, wfinnish, wfrench, wgalician-minimos, witalian, wngerman, wnorwegian, wogerman, wpolish, wspanish, wswedish, wswiss, wukrainian
Replaces: userdir-ldap
Description: CGI programs for the db.debian.org
# Copyright (c) 2008 Peter Palfrader
-import crack, sys, tempfile, os
+import sys, tempfile, os
+try:
+ import crack as cracklib
+except ImportError:
+ import cracklib
def cleanup(dir):
if not dir.startswith('/tmp/pwcheck-'):
+crack_mkdict = None
+crack_packer = None
+for b in "/usr/sbin/crack_mkdict /usr/sbin/cracklib-format".split(' '):
+ if os.path.exists(b):
+ crack_mkdict = b
+ break
+for b in "/usr/sbin/crack_packer /usr/sbin/cracklib-packer".split(' '):
+ if os.path.exists(b):
+ crack_packer = b
+ break
+if crack_mkdict is None or crack_packer is None:
+ print "Could not find crack formater or packer"
+ sys.exit(1)
+
+
newpass = sys.stdin.readline().strip()
oldpass = sys.stdin.readline().strip()
ldapwords = map( lambda x: x.strip(), sys.stdin.readlines())
oldpass = None
-crack.min_length = 11
+cracklib.min_length = 11
# check against the default dictionary
try:
- crack.VeryFascistCheck(newpass, oldpass)
+ cracklib.VeryFascistCheck(newpass, oldpass, '/var/cache/cracklib/cracklib_dict')
except ValueError, e:
print e
sys.exit(1)
F.write(w1[0]+w2+"\n");
F.close()
- r = os.system("/usr/sbin/crack_mkdict "+tmpdir+"/wordlist > "+tmpdir+"/wordlist-cleaned")
+ r = os.system(crack_mkdict+" "+tmpdir+"/wordlist > "+tmpdir+"/wordlist-cleaned")
if r != 0:
print "crack_mkdict returned non-zero exit status %d."%(r)
cleanup(tmpdir)
sys.exit(1)
- r = os.system("/usr/sbin/crack_packer "+tmpdir+"/dict < "+tmpdir+"/wordlist-cleaned > /dev/null")
+ r = os.system(crack_packer+" "+tmpdir+"/dict < "+tmpdir+"/wordlist-cleaned > /dev/null")
if r != 0:
print "crack_packer returned non-zero exit status %d."%(r)
cleanup(tmpdir)
sys.exit(1)
try:
- crack.VeryFascistCheck(newpass, None, tmpdir+"/dict")
+ cracklib.VeryFascistCheck(newpass, None, tmpdir+"/dict")
except ValueError, e:
print "ldap data based check: "+str(e)
cleanup(tmpdir)