diff --git a/contrib/htdigest.py b/contrib/htdigest.py
|
a
|
b
|
|
| 17 | 17 | |
| 18 | 18 | import errno |
| 19 | 19 | import fileinput |
| 20 | | import md5 |
| 21 | 20 | import sys |
| 22 | 21 | from optparse import OptionParser |
| 23 | 22 | from getpass import getpass |
| | 23 | |
| | 24 | # The md5 module is deprecated in Python 2.5 |
| | 25 | try: |
| | 26 | from hashlib import md5 |
| | 27 | except ImportError: |
| | 28 | from md5 import md5 |
| 24 | 29 | |
| 25 | 30 | def ask_pass(): |
| 26 | 31 | pass1 = getpass('New password: ') |
| … |
… |
|
| 36 | 41 | return make_digest(userprefix, password) |
| 37 | 42 | |
| 38 | 43 | def make_digest(userprefix, password): |
| 39 | | return userprefix + md5.new(userprefix + password).hexdigest() |
| | 44 | return userprefix + md5(userprefix + password).hexdigest() |
| 40 | 45 | |
| 41 | 46 | usage = "%prog [-c] [-b] passwordfile realm username" |
| 42 | 47 | parser = OptionParser(usage=usage) |
diff --git a/trac/ticket/notification.py b/trac/ticket/notification.py
|
a
|
b
|
|
| 16 | 16 | # Author: Daniel Lundin <daniel@edgewall.com> |
| 17 | 17 | # |
| 18 | 18 | |
| 19 | | import md5 |
| 20 | | |
| 21 | 19 | from trac import __version__ |
| 22 | 20 | from trac.core import * |
| 23 | 21 | from trac.config import * |
| 24 | 22 | from trac.notification import NotifyEmail |
| | 23 | from trac.util import md5 |
| 25 | 24 | from trac.util.datefmt import to_timestamp |
| 26 | 25 | from trac.util.text import CRLF, wrap, to_unicode |
| 27 | 26 | |
| … |
… |
|
| 284 | 283 | s = '%s.%08d.%d.%s' % (self.config.get('project', 'url'), |
| 285 | 284 | int(self.ticket.id), to_timestamp(modtime), |
| 286 | 285 | rcpt.encode('ascii', 'ignore')) |
| 287 | | dig = md5.new(s).hexdigest() |
| | 286 | dig = md5(s).hexdigest() |
| 288 | 287 | host = self.from_email[self.from_email.find('@') + 1:] |
| 289 | 288 | msgid = '<%03d.%s@%s>' % (len(s), dig, host) |
| 290 | 289 | return msgid |
diff --git a/trac/util/__init__.py b/trac/util/__init__.py
|
a
|
b
|
|
| 18 | 18 | # Matthew Good <trac@matt-good.net> |
| 19 | 19 | |
| 20 | 20 | import locale |
| 21 | | import md5 |
| 22 | 21 | import os |
| 23 | 22 | import re |
| 24 | 23 | import sys |
| … |
… |
|
| 26 | 25 | import tempfile |
| 27 | 26 | from urllib import quote, unquote, urlencode |
| 28 | 27 | from itertools import izip |
| | 28 | |
| | 29 | # The md5 module is deprecated in Python 2.5 |
| | 30 | try: |
| | 31 | from hashlib import md5 |
| | 32 | except ImportError: |
| | 33 | from md5 import md5 |
| 29 | 34 | |
| 30 | 35 | # Imports for backward compatibility |
| 31 | 36 | from trac.core import TracError |
| … |
… |
|
| 271 | 276 | # /* The password first, since that is what is most unknown */ |
| 272 | 277 | # /* Then our magic string */ |
| 273 | 278 | # /* Then the raw salt */ |
| 274 | | m = md5.new() |
| 275 | | m.update(password + magic + salt) |
| | 279 | m = md5(password + magic + salt) |
| 276 | 280 | |
| 277 | 281 | # /* Then just as many characters of the MD5(pw,salt,pw) */ |
| 278 | | mixin = md5.md5(password + salt + password).digest() |
| | 282 | mixin = md5(password + salt + password).digest() |
| 279 | 283 | for i in range(0, len(password)): |
| 280 | 284 | m.update(mixin[i % 16]) |
| 281 | 285 | |
| … |
… |
|
| 293 | 297 | |
| 294 | 298 | # /* and now, just to make sure things don't run too fast */ |
| 295 | 299 | for i in range(1000): |
| 296 | | m2 = md5.md5() |
| | 300 | m2 = md5() |
| 297 | 301 | if i & 1: |
| 298 | 302 | m2.update(password) |
| 299 | 303 | else: |
diff --git a/trac/web/api.py b/trac/web/api.py
|
a
|
b
|
|
| 26 | 26 | import urlparse |
| 27 | 27 | |
| 28 | 28 | from trac.core import Interface, TracError |
| 29 | | from trac.util import get_last_traceback |
| | 29 | from trac.util import get_last_traceback, md5 |
| 30 | 30 | from trac.util.datefmt import http_date, localtz |
| 31 | 31 | from trac.web.href import Href |
| 32 | 32 | from trac.web.wsgi import _FileWrapper |
| … |
… |
|
| 244 | 244 | so that consecutive requests can be cached. |
| 245 | 245 | """ |
| 246 | 246 | if isinstance(extra, list): |
| 247 | | import md5 |
| 248 | | m = md5.new() |
| | 247 | m = md5() |
| 249 | 248 | for elt in extra: |
| 250 | 249 | m.update(repr(elt)) |
| 251 | 250 | extra = m.hexdigest() |
diff --git a/trac/web/auth.py b/trac/web/auth.py
|
a
|
b
|
|
| 22 | 22 | import threading |
| 23 | 23 | except ImportError: |
| 24 | 24 | import dummy_threading as threading |
| 25 | | import md5 |
| 26 | 25 | import os |
| 27 | 26 | import re |
| 28 | 27 | import sys |
| … |
… |
|
| 35 | 34 | from trac.core import * |
| 36 | 35 | from trac.web.api import IAuthenticator, IRequestHandler |
| 37 | 36 | from trac.web.chrome import INavigationContributor |
| 38 | | from trac.util import hex_entropy, md5crypt |
| | 37 | from trac.util import hex_entropy, md5, md5crypt |
| 39 | 38 | |
| 40 | 39 | |
| 41 | 40 | class LoginModule(Component): |
| … |
… |
|
| 367 | 366 | self.send_auth_request(environ, start_response) |
| 368 | 367 | return None |
| 369 | 368 | |
| 370 | | kd = lambda x: md5.md5(':'.join(x)).hexdigest() |
| | 369 | kd = lambda x: md5(':'.join(x)).hexdigest() |
| 371 | 370 | a1 = self.hash[auth['username']] |
| 372 | 371 | a2 = kd([environ['REQUEST_METHOD'], auth['uri']]) |
| 373 | 372 | # Is the response correct? |