blob: a11294a91c0cec7181075ec57da2b87b616d9e91 [file] [log] [blame]
Guido van Rossum37a29111995-06-21 00:55:59 +00001class Security:
2
3 def __init__(self):
4 import os
5 env = os.environ
6 if env.has_key('PYTHON_KEYFILE'):
7 keyfile = env['PYTHON_KEYFILE']
Guido van Rossum37a29111995-06-21 00:55:59 +00008 else:
9 keyfile = '.python_keyfile'
Guido van Rossum541df3e1995-06-21 02:08:55 +000010 if env.has_key('HOME'):
11 keyfile = os.path.join(env['HOME'], keyfile)
Guido van Rossum37a29111995-06-21 00:55:59 +000012 try:
13 self._key = eval(open(keyfile).readline())
14 except IOError:
15 raise IOError, "python keyfile %s not found" % keyfile
16
17 def _generate_challenge(self):
18 import whrandom
19 return whrandom.randint(100, 100000)
20
21 def _compare_challenge_response(self, challenge, response):
22 return self._encode_challenge(challenge) == response
23
24 def _encode_challenge(self, challenge):
25 p, m = self._key
Guido van Rossum541df3e1995-06-21 02:08:55 +000026 return pow(long(challenge), p, m)