Just a small change to the regex's, where applicable, ala:
Prototype(
regex=re.compile(r'^\$1\$[a-z0-9\/.]{0,8}\$[a-z0-9\/.]{22}(:.*)?$', re.IGNORECASE),
...note the "(:.*)?" before the EOL terminator? that lets me use raw passwd+shadow files, without any preprocessing.
Just a small change to the regex's, where applicable, ala: Prototype( regex=re.compile(r'^\$1\$[a-z0-9\/.]{0,8}\$[a-z0-9\/.]{22}(:.*)?$', re.IGNORECASE),
...note the "(:.*)?" before the EOL terminator? that lets me use raw passwd+shadow files, without any preprocessing.