Mercurial > cpython-lru_cache-weakref
annotate Demo/pdist/security.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 469369ad2f2f |
| children | d7c568e7707b |
| rev | line source |
|---|---|
|
2762
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 class Security: |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 def __init__(self): |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 import os |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 env = os.environ |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 if env.has_key('PYTHON_KEYFILE'): |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 keyfile = env['PYTHON_KEYFILE'] |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 else: |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 keyfile = '.python_keyfile' |
| 2766 | 10 if env.has_key('HOME'): |
| 11 keyfile = os.path.join(env['HOME'], keyfile) | |
|
3157
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
12 if not os.path.exists(keyfile): |
|
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
13 import sys |
|
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
14 for dir in sys.path: |
|
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
15 kf = os.path.join(dir, keyfile) |
|
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
16 if os.path.exists(kf): |
|
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
17 keyfile = kf |
|
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
18 break |
|
2762
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 try: |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 self._key = eval(open(keyfile).readline()) |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 except IOError: |
|
3157
469369ad2f2f
search for keyfile in sys.path as last resort; reword exception
Guido van Rossum <guido@python.org>
parents:
2766
diff
changeset
|
22 raise IOError, "python keyfile %s: cannot open" % keyfile |
|
2762
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 def _generate_challenge(self): |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 import whrandom |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 return whrandom.randint(100, 100000) |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 def _compare_challenge_response(self, challenge, response): |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 return self._encode_challenge(challenge) == response |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 def _encode_challenge(self, challenge): |
|
be21c3e0cc03
placeholder for security measures
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 p, m = self._key |
| 2766 | 33 return pow(long(challenge), p, m) |
