SaltVals = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/.";
Rand = open("/dev/urandom");
Password = "";
- for i in range(0,10):
+ for i in range(0,15):
Password = Password + SaltVals[ord(Rand.read(1)[0]) % len(SaltVals)];
return Password;
# glibc then just change Salt = "$1$" to Salt = "";
SaltVals = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/.";
Salt = "$1$";
+ Rand = open("/dev/urandom");
for x in range(0,10):
- Salt = Salt + SaltVals[whrandom.randint(0,len(SaltVals)-1)];
+ Salt = Salt + SaltVals[ord(Rand.read(1)[0]) % len(SaltVals)];
Pass = crypt.crypt(Password,Salt);
if len(Pass) < 14:
raise "Password Error", "MD5 password hashing failed, not changing the password!";
# Take an email address and split it into 3 parts, (Name,UID,Domain)
def SplitEmail(Addr):
+ # Is not an email address at all
+ if string.find(Addr,'@') == -1:
+ return (Addr,"","");
+
Res1 = rfc822.AddrlistClass(Addr).getaddress();
if len(Res1) != 1:
return ("","",Addr);
Stat = "unknown map hit for"+str(Name);
return (UnknownMap[Name[2]],[Stat]);
+ # Then the name component (another ie there was no email address to match)
+ if UnknownMap.has_key(Name[0]):
+ Stat = "unknown map hit for"+str(Name);
+ return (UnknownMap[Name[0]],[Stat]);
+
# Search for a possible first/last name hit
try:
Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"(&(cn=%s)(sn=%s))"%(cn,sn),["uid"]);