コード例 #1
0
 def OnClientClick(self, event):
     global key,masKey,public_key,private_key
     self.clientname=self.InputText1.GetValue()
     self.socketmode=0
     #self.cButton.SetLabel("Client")
     key=RSA.Build_key(self.clientname)
     masKey=RSA.Build_key(self.clientname)#Masquerader attack test
     public_key = key.split('/')[0]+'/'+key.split('/')[1] # n/e pair
     private_key = key.split('/')[0]+'/'+key.split('/')[2] # n/d pair
     thread.start_new_thread(self.SocketProc_client,())
コード例 #2
0
 def OnSeverClick(self, event):
     global key
     self.servername=self.InputText2.GetValue()
     self.socketmode=1
     #self.sButton.SetLabel("Server")
     key=RSA.Build_key(self.servername)
     print key
     thread.start_new_thread(self.SocketProc_server,())
コード例 #3
0
class Handler(BaseRequestHandler):
    def handle(self):
        global key
        global public_key
        global private_key
        address, pid = self.client_address
        print('%s connected!' % address)
        while True:
            data = self.request.recv(BUF_SIZE)
            if len(data) > 0:
                print('receive=', data.decode('utf-8'))
                cur_thread = threading.current_thread()
                hdata = crypto.md5(data)
                print(hdata)
                response = RSA.encrypt(hdata, private_key) + '/' + public_key
                self.request.sendall(response)


if __name__ == '__main__':
    HOST = '127.0.0.1'
    PORT = 8998
    ADDR = (HOST, PORT)
    key = RSA.Build_key('CA')  # CA build public and private key
    public_key = key.split('/')[0] + '/' + key.split('/')[1]  # n/e pair
    private_key = key.split('/')[0] + '/' + key.split('/')[2]  # n/d pair
    server = ThreadingTCPServer(ADDR, Handler)
    print('Listening Client Application')
    server.serve_forever()
    print(server)