Changeset 454

Show
Ignore:
Timestamp:
02/26/03 00:55:54 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBTelepathy/demo/simple/client/AuthenticationHandler.py

    r453 r454  
    3131 
    3232DefaultNamespace = 'Test-namespace' 
     33 
     34try: 
     35    from Crypto.PublicKey import RSA 
     36    import pickle 
     37    sendkey = pickle.load(open('send.rsa')) 
     38    recvkey = pickle.load(open('send.rsa')) 
     39except ImportError: 
     40    sendkey = None 
     41    recvkey = None 
    3342 
    3443#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    173182        packet[-1].attrs['addr'] = str(self.loginaddr) 
    174183        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() 
    181201        self.SendPacket(packet) 
    182202 
  • trunk/RBTelepathy/demo/simple/host/AuthenticationHandler.py

    r453 r454  
    101101        return self.response == correct 
    102102 
    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 
     103try: 
     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 
     117except ImportError:  
     118    DefaultAuthMethod = AuthSHA # XXX:XXX:XXX:XXX 
     119 
     120#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     121 
    113122class authentication(RBME.RootElementBase, XMLClassBuilderObjectMixin): 
    114123    __slots__ = []