diff options
| author | viega | 1998-05-30 16:15:08 +0000 |
|---|---|---|
| committer | viega | 1998-05-30 16:15:08 +0000 |
| commit | 28f8e182ad5ac9eabae4a9fb6aed6b8ec3db71e3 (patch) | |
| tree | d585587983618c2552c4cbc24b2ef9b73115b44d | |
| parent | 801e9a70e41c85b8e91fd074020166944e419363 (diff) | |
| download | mailman-28f8e182ad5ac9eabae4a9fb6aed6b8ec3db71e3.tar.gz mailman-28f8e182ad5ac9eabae4a9fb6aed6b8ec3db71e3.tar.zst mailman-28f8e182ad5ac9eabae4a9fb6aed6b8ec3db71e3.zip | |
Added mm_crypt, which trys to import crypt, and provides a wrapper
interface to an md5 digest if the import fails. This way, we don't
have to tell people to recompile python if they compiled it out of the
box. (since crypt is no longer in by default).
mm_security now uses mm_crypt instead of crypt.
| -rw-r--r-- | Mailman/Crypt.py | 8 | ||||
| -rw-r--r-- | Mailman/Makefile.in | 2 | ||||
| -rw-r--r-- | Mailman/SecurityManager.py | 8 | ||||
| -rw-r--r-- | modules/Makefile.in | 2 | ||||
| -rw-r--r-- | modules/mm_crypt.py | 8 | ||||
| -rw-r--r-- | modules/mm_security.py | 8 |
6 files changed, 26 insertions, 10 deletions
diff --git a/Mailman/Crypt.py b/Mailman/Crypt.py new file mode 100644 index 000000000..f495cdd2c --- /dev/null +++ b/Mailman/Crypt.py @@ -0,0 +1,8 @@ +try: + from crypt import * +except ImportError: + def crypt(string, seed): + import md5 + m = md5.new() + m.update(string) + return m.digest()
\ No newline at end of file diff --git a/Mailman/Makefile.in b/Mailman/Makefile.in index 49d69bd26..373f5a6c8 100644 --- a/Mailman/Makefile.in +++ b/Mailman/Makefile.in @@ -46,7 +46,7 @@ MODULES= __init__.py aliases.py htmlformat.py maillist.py \ mm_admin.py mm_archive.py mm_bouncer.py mm_defaults.py \ mm_deliver.py mm_digest.py mm_err.py mm_html.py mm_mailcmd.py \ mm_mbox.py mm_message.py mm_security.py mm_utils.py \ -mm_pending.py pipermail.py smtplib.py versions.py +mm_pending.py mm_crypt.py pipermail.py smtplib.py versions.py # Modes for directories and executables created by the install # process. Default to group-writable directories but diff --git a/Mailman/SecurityManager.py b/Mailman/SecurityManager.py index f487f4c13..be7f75130 100644 --- a/Mailman/SecurityManager.py +++ b/Mailman/SecurityManager.py @@ -18,7 +18,7 @@ """Handle passwords and sanitize approved messages.""" -import crypt, types, string, os +import mm_crypt, types, string, os import mm_err, mm_utils, mm_cfg # TBD: is this the best location for the site password? @@ -29,7 +29,7 @@ class SecurityManager: def SetSiteAdminPassword(self, pw): old = os.umask(0022) f = open(SITE_PW_FILE, "w+") - f.write(crypt.crypt(pw, mm_utils.GetRandomSeed())) + f.write(mm_crypt.crypt(pw, mm_utils.GetRandomSeed())) f.close() os.umask(old) @@ -38,7 +38,7 @@ class SecurityManager: f = open(SITE_PW_FILE, "r+") pw = f.read() f.close() - return crypt.crypt(str, pw) == pw + return mm_crypt.crypt(str, pw) == pw # There probably is no site admin password if there was an exception except: return 0 @@ -55,7 +55,7 @@ class SecurityManager: if self.CheckSiteAdminPassword(pw): return 1 return ((type(pw) == types.StringType) and - (crypt.crypt(pw, self.password) == self.password)) + (mm_crypt.crypt(pw, self.password) == self.password)) def ConfirmAdminPassword(self, pw): if(not self.ValidAdminPassword(pw)): diff --git a/modules/Makefile.in b/modules/Makefile.in index 49d69bd26..373f5a6c8 100644 --- a/modules/Makefile.in +++ b/modules/Makefile.in @@ -46,7 +46,7 @@ MODULES= __init__.py aliases.py htmlformat.py maillist.py \ mm_admin.py mm_archive.py mm_bouncer.py mm_defaults.py \ mm_deliver.py mm_digest.py mm_err.py mm_html.py mm_mailcmd.py \ mm_mbox.py mm_message.py mm_security.py mm_utils.py \ -mm_pending.py pipermail.py smtplib.py versions.py +mm_pending.py mm_crypt.py pipermail.py smtplib.py versions.py # Modes for directories and executables created by the install # process. Default to group-writable directories but diff --git a/modules/mm_crypt.py b/modules/mm_crypt.py new file mode 100644 index 000000000..f495cdd2c --- /dev/null +++ b/modules/mm_crypt.py @@ -0,0 +1,8 @@ +try: + from crypt import * +except ImportError: + def crypt(string, seed): + import md5 + m = md5.new() + m.update(string) + return m.digest()
\ No newline at end of file diff --git a/modules/mm_security.py b/modules/mm_security.py index f487f4c13..be7f75130 100644 --- a/modules/mm_security.py +++ b/modules/mm_security.py @@ -18,7 +18,7 @@ """Handle passwords and sanitize approved messages.""" -import crypt, types, string, os +import mm_crypt, types, string, os import mm_err, mm_utils, mm_cfg # TBD: is this the best location for the site password? @@ -29,7 +29,7 @@ class SecurityManager: def SetSiteAdminPassword(self, pw): old = os.umask(0022) f = open(SITE_PW_FILE, "w+") - f.write(crypt.crypt(pw, mm_utils.GetRandomSeed())) + f.write(mm_crypt.crypt(pw, mm_utils.GetRandomSeed())) f.close() os.umask(old) @@ -38,7 +38,7 @@ class SecurityManager: f = open(SITE_PW_FILE, "r+") pw = f.read() f.close() - return crypt.crypt(str, pw) == pw + return mm_crypt.crypt(str, pw) == pw # There probably is no site admin password if there was an exception except: return 0 @@ -55,7 +55,7 @@ class SecurityManager: if self.CheckSiteAdminPassword(pw): return 1 return ((type(pw) == types.StringType) and - (crypt.crypt(pw, self.password) == self.password)) + (mm_crypt.crypt(pw, self.password) == self.password)) def ConfirmAdminPassword(self, pw): if(not self.ValidAdminPassword(pw)): |
