/Demo/pdist/security.py
http://unladen-swallow.googlecode.com/ · Python · 33 lines · 29 code · 4 blank · 0 comment · 8 complexity · 53280f0ef44a9e95dedfcfa4759cda61 MD5 · raw file
- class Security:
- def __init__(self):
- import os
- env = os.environ
- if env.has_key('PYTHON_KEYFILE'):
- keyfile = env['PYTHON_KEYFILE']
- else:
- keyfile = '.python_keyfile'
- if env.has_key('HOME'):
- keyfile = os.path.join(env['HOME'], keyfile)
- if not os.path.exists(keyfile):
- import sys
- for dir in sys.path:
- kf = os.path.join(dir, keyfile)
- if os.path.exists(kf):
- keyfile = kf
- break
- try:
- self._key = eval(open(keyfile).readline())
- except IOError:
- raise IOError, "python keyfile %s: cannot open" % keyfile
- def _generate_challenge(self):
- import random
- return random.randint(100, 100000)
- def _compare_challenge_response(self, challenge, response):
- return self._encode_challenge(challenge) == response
- def _encode_challenge(self, challenge):
- p, m = self._key
- return pow(long(challenge), p, m)