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