| Last change
 on this file since 281 was             2, checked in by Yuri Dario, 15 years ago | 
        
          | 
Initial import for vendor code.
 | 
        
          | 
              
Property                 svn:eol-style
 set to                 native | 
        
          | File size:
            1.1 KB | 
      
      
| Line |  | 
|---|
| 1 | class 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'] | 
|---|
| 8 | else: | 
|---|
| 9 | keyfile = '.python_keyfile' | 
|---|
| 10 | if env.has_key('HOME'): | 
|---|
| 11 | keyfile = os.path.join(env['HOME'], keyfile) | 
|---|
| 12 | if not os.path.exists(keyfile): | 
|---|
| 13 | import sys | 
|---|
| 14 | for dir in sys.path: | 
|---|
| 15 | kf = os.path.join(dir, keyfile) | 
|---|
| 16 | if os.path.exists(kf): | 
|---|
| 17 | keyfile = kf | 
|---|
| 18 | break | 
|---|
| 19 | try: | 
|---|
| 20 | self._key = eval(open(keyfile).readline()) | 
|---|
| 21 | except IOError: | 
|---|
| 22 | raise IOError, "python keyfile %s: cannot open" % keyfile | 
|---|
| 23 |  | 
|---|
| 24 | def _generate_challenge(self): | 
|---|
| 25 | import random | 
|---|
| 26 | return random.randint(100, 100000) | 
|---|
| 27 |  | 
|---|
| 28 | def _compare_challenge_response(self, challenge, response): | 
|---|
| 29 | return self._encode_challenge(challenge) == response | 
|---|
| 30 |  | 
|---|
| 31 | def _encode_challenge(self, challenge): | 
|---|
| 32 | p, m = self._key | 
|---|
| 33 | return pow(long(challenge), p, m) | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.