Staging
v0.5.1
https://github.com/python/cpython
Revision e41251e864e94885d785b5a9bf8f824753316296 authored by Benjamin Peterson on 25 April 2008, 01:59:09 UTC, committed by Benjamin Peterson on 25 April 2008, 01:59:09 UTC
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r62490 | benjamin.peterson | 2008-04-24 20:29:10 -0500 (Thu, 24 Apr 2008) | 2 lines

  reformat some documentation of classes so methods and attributes are under the class directive
........
1 parent 768db92
Raw File
Tip revision: e41251e864e94885d785b5a9bf8f824753316296 authored by Benjamin Peterson on 25 April 2008, 01:59:09 UTC
Merged revisions 62490 via svnmerge from
Tip revision: e41251e
security.py
class Security:

    def __init__(self):
        import os
        env = os.environ
        if 'PYTHON_KEYFILE' in env:
            keyfile = env['PYTHON_KEYFILE']
        else:
            keyfile = '.python_keyfile'
            if 'HOME' in env:
                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(int(challenge), p, m)
back to top