+++ /dev/null
-class Security:\r
-\r
- def __init__(self):\r
- import os\r
- env = os.environ\r
- if env.has_key('PYTHON_KEYFILE'):\r
- keyfile = env['PYTHON_KEYFILE']\r
- else:\r
- keyfile = '.python_keyfile'\r
- if env.has_key('HOME'):\r
- keyfile = os.path.join(env['HOME'], keyfile)\r
- if not os.path.exists(keyfile):\r
- import sys\r
- for dir in sys.path:\r
- kf = os.path.join(dir, keyfile)\r
- if os.path.exists(kf):\r
- keyfile = kf\r
- break\r
- try:\r
- self._key = eval(open(keyfile).readline())\r
- except IOError:\r
- raise IOError, "python keyfile %s: cannot open" % keyfile\r
-\r
- def _generate_challenge(self):\r
- import random\r
- return random.randint(100, 100000)\r
-\r
- def _compare_challenge_response(self, challenge, response):\r
- return self._encode_challenge(challenge) == response\r
-\r
- def _encode_challenge(self, challenge):\r
- p, m = self._key\r
- return pow(long(challenge), p, m)\r