示例#1
0
文件: pb_srp.py 项目: cocagne/scratch
 def __init__(self, avatar_factory, srp_server, username, A):
     self.username       = username
     self.srp_server     = srp_server
     self.avatar_factory = avatar_factory
     
     s,B = srp_server.step1( (username, A) )
     
     self.challenge  = (srp.long_to_bytes(s), srp.long_to_bytes(B))
示例#2
0
文件: pb_srp.py 项目: cocagne/scratch
 def result( arg ):
     if isinstance( arg, failure.Failure ):
         print 'PB SRP Login FAILURE as "%s":' % username, arg.getErrorMessage()
         return arg
     else:
         print 'PB SRP Login success as "%s".' % username
         return (arg, srp.long_to_bytes(c.K), disconnect_func)
示例#3
0
文件: pb_srp.py 项目: cocagne/scratch
 def remote_validate_user(self, user_M):
     try:
         HAMK = self.srp_server.validate_user( user_M )
         print 'PB SRP Login succeeded for:', self.username
         pb_obj = self.avatar_factory( self.username, srp.long_to_bytes(self.srp_server.K) )
         return HAMK, pb_obj
     except Exception,e:
         traceback.print_exc()
         print 'PB SRP Login failed for "%s":' % self.username, str(e)
         return (None,None)
示例#4
0
文件: pb_srp.py 项目: cocagne/scratch
def _pb_srp_connected(login_mgr, username,  password, disconnect_func):
    #print 'PB SRP Login as:', username
    
    c = srp.Client( username, password )
    I,A = c.step1()
    
    d = login_mgr.callRemote('login', I, srp.long_to_bytes(A))
    
    def step2( ((s,B), validator) ):
        
        if s is None or B is None or validator is None:
            raise Exception('User Authentication Failed')
        
        s = srp.bytes_to_long(s)
        B = srp.bytes_to_long(B)
        
        M = c.step2( (s,B) )
        
        return validator.callRemote('validate_user', M)