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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
fecc939f4d59 bugfixes
Guido van Rossum <guido@python.org>
parents: 2762
diff changeset
10 if env.has_key('HOME'):
fecc939f4d59 bugfixes
Guido van Rossum <guido@python.org>
parents: 2762
diff changeset
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
fecc939f4d59 bugfixes
Guido van Rossum <guido@python.org>
parents: 2762
diff changeset
33 return pow(long(challenge), p, m)