|
Last change
on this file since 404 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.