Changeset 454
- Timestamp:
- 02/26/03 00:55:54 (6 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBTelepathy/demo/simple/client/AuthenticationHandler.py
r453 r454 31 31 32 32 DefaultNamespace = 'Test-namespace' 33 34 try: 35 from Crypto.PublicKey import RSA 36 import pickle 37 sendkey = pickle.load(open('send.rsa')) 38 recvkey = pickle.load(open('send.rsa')) 39 except ImportError: 40 sendkey = None 41 recvkey = None 33 42 34 43 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 173 182 packet[-1].attrs['addr'] = str(self.loginaddr) 174 183 packet += method() 175 packet[-1].attrs['type'] = 'sha-hash' 176 packet[-1] += 'challenge', 177 packet[-1][-1] += 'password' 178 packet[-1] += 'response', 179 import sha 180 packet[-1][-1] += sha.new('secret'+'password').hexdigest() 184 185 if sendkey: 186 # Use PublicKey 187 packet[-1].attrs['type'] = 'publickey' 188 packet[-1] += 'challenge', 189 signdata = 'password' 190 packet[-1][-1] += signdata 191 packet[-1] += 'response', 192 packet[-1][-1] += str(sendkey.sign(signdata, '')[0]) 193 #print packet[-1].toxml(True) 194 else: 195 packet[-1].attrs['type'] = 'sha-hash' 196 packet[-1] += 'challenge', 197 packet[-1][-1] += 'password' 198 packet[-1] += 'response', 199 import sha 200 packet[-1][-1] += sha.new('secret'+'password').hexdigest() 181 201 self.SendPacket(packet) 182 202 trunk/RBTelepathy/demo/simple/host/AuthenticationHandler.py
r453 r454 101 101 return self.response == correct 102 102 103 class AuthPublickey(AuthBaseMethod): 104 AuthDB = { 'send': 'secret', 'recv': 'secret' } 105 def Authenticate(self, handler, asaddr): 106 import sha 107 correct = sha.new(self.AuthDB[asaddr.account] + self.challenge).hexdigest() 108 return self.response == correct 109 110 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 112 DefaultAuthMethod = AuthSHA # XXX:XXX:XXX:XXX 103 try: 104 from Crypto.PublicKey import RSA 105 import pickle 106 class AuthPublicKey(AuthBaseMethod): 107 AuthDB = { 108 'send': pickle.load(open('send.rsa')), 109 'recv': pickle.load(open('send.rsa')), 110 } 111 def Authenticate(self, handler, asaddr): 112 signature = long(self.response) 113 key = self.AuthDB[asaddr.account] 114 return key.verify(self.challenge, (signature,)) 115 116 DefaultAuthMethod = AuthPublicKey # XXX:XXX:XXX:XXX 117 except ImportError: 118 DefaultAuthMethod = AuthSHA # XXX:XXX:XXX:XXX 119 120 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 113 122 class authentication(RBME.RootElementBase, XMLClassBuilderObjectMixin): 114 123 __slots__ = []
