def HandleMsg(self,bufsize,session): "接受对方传来的dh参数及公钥并生成自己的dh公钥" recvmsg = NetSocketFun.NetSocketRecv(session.sockfd,bufsize) dhmsg = NetSocketFun.NetUnPackMsgBody(recvmsg) #参数p:公钥:签名 self.verifyMsgSign(dhmsg[:2], dhmsg[2:], session)
def HandleMsg(self,bufsize,fddata,th): if not fddata.GetData("currentbytes") and fddata.threadtype != CommonData.ThreadType.CONNECTAP: _cfg = ConfigData.ConfigData() _dir = _cfg.GetMediaPath() + "/auditserver/" recvbuffer = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"),bufsize) fddata.SetData("control.filename",_dir + NetSocketFun.NetUnPackMsgBody(recvbuffer)[0]) if not fddata.GetData("currentbytes"): self.handleFileBegin(bufsize, fddata) _filebuffer = fddata.GetData("file").read(CommonData.MsgHandlec.FILEBLOCKSIZE) fddata.SetData("currentbytes",fddata.GetData("currentbytes") + len(_filebuffer)) msgbody = NetSocketFun.NetPackMsgBody([_filebuffer]) if fddata.GetData("currentbytes") == fddata.totalbytes: msghead = self.packetMsg(MagicNum.MsgTypec.SENDFILEOVER,len(msgbody)) fddata.GetData("file").close() fddata.SetData("currentbytes",0) _filename = fddata.GetData("filename")[-fddata.GetData("filename")[::-1].index("/"):].encode("utf-8") filesize = float(fddata.GetData("totalbytes")) / (1024 * 1024) showmsg = "文件发送完毕:\n(1)文件名:" + _filename + "\n(2)文件大小(MB):" + str(filesize) self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT,showmsg,True) else: msghead = self.packetMsg(MagicNum.MsgTypec.SENDFILEBUFFER,len(msgbody)) fddata.SetData("outdata", msghead + msgbody) th.ModifyInToOut(fddata.GetData("sockfd"))
def HandleMsg(self, bufsize, fddata, th): recvmsg = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) recvbuffer = NetSocketFun.NetUnPackMsgBody(recvmsg)[0] from CryptoAlgorithms import RsaKeyExchange _rke = RsaKeyExchange.RsaKeyExchange() _rke.WritePubkeyStr("auditserver", recvbuffer) wx.CallAfter(Publisher().sendMessage, CommonData.ViewPublisherc.REGISTER_SWITCH, MagicNum.CPUserTablec.UNACCEPT)
def HandleMsg(self, bufsize, session): if not session.currentbytes: self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, "开始接收文件(" + session.filename + ") ...") recvmsg = NetSocketFun.NetSocketRecv(session.sockfd, bufsize) recvbuffer = NetSocketFun.NetUnPackMsgBody(recvmsg)[0] session.currentbytes += len(recvbuffer) session.file.write(recvbuffer) msghead = self.packetMsg(MagicNum.MsgTypec.REQFILEBUFFER, 0) NetSocketFun.NetSocketSend(session.sockfd, msghead)
def HandleMsg(self, bufsize, fddata, th): if not fddata.GetData("currentbytes"): self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, "开始接收文件(" + fddata.GetData("filename") + ")") recvmsg = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) recvbuffer = NetSocketFun.NetUnPackMsgBody(recvmsg)[0] fddata.SetData("currentbytes", fddata.GetData("currentbytes") + len(recvbuffer)) fddata.GetData("file").write(recvbuffer) msghead = self.packetMsg(MagicNum.MsgTypec.REQFILEBUFFER, 0) fddata.SetData("outdata", msghead) th.ModifyInToOut(fddata.GetData("sockfd"))
def HandleMsg(self, bufsize, fddata, th): "接收文件名,保存文件名" recvbuffer = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) fddata.SetData("threadtype", CommonData.ThreadType.ACCETPNO) msglist = NetSocketFun.NetUnPackMsgBody(recvbuffer.encode("utf-8")) fddata.SetData("filename", self.__mediapath + "/auditserver/" + msglist[0]) showmsg = "开始为 " + msglist[1] + " 分发文件(" + msglist[0] + ")" fddata.SetData("peername", msglist[1]) self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg.encode("utf-8"), True) import SendDhPAndPubkey _sdh = SendDhPAndPubkey.SendDhPAndPubkey() _sdh.HandleMsg(0, fddata)
def HandleMsg(self, bufsize, session): "接收文件名,保存文件名" recvbuffer = NetSocketFun.NetSocketRecv(session.sockfd, bufsize) session.threadtype = CommonData.ThreadType.ACCETPNO msglist = NetSocketFun.NetUnPackMsgBody(recvbuffer.encode("utf-8")) session.filename = self.__mediapath + "/auditserver/" + msglist[0] showmsg = "开始为 " + msglist[1] + " 分发文件(" + msglist[0] + ")" self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_REFRESHSTATIC, [msglist[0], "正在分发文件"]) session.peername = msglist[1] self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg.encode("utf-8"), True) import SendDhPAndPubkey _sdh = SendDhPAndPubkey.SendDhPAndPubkey() _sdh.HandleMsg(0, session)
def run(self): "接受消息头之后,得到消息类型,然后选择具体的处理类来处理该消息" _MsgHandleMap = MsgHandleMap.MsgHandleMap() while self.runflag: recvbuffer = NetSocketFun.NetSocketRecv( self.sockfd, struct.calcsize(CommonData.MsgHandlec.MSGHEADTYPE)) if len(recvbuffer) == 0 or (len(recvbuffer) != struct.calcsize( CommonData.MsgHandlec.MSGHEADTYPE)): break recvmsghead = struct.unpack(CommonData.MsgHandlec.MSGHEADTYPE, recvbuffer) _MsgHandleMap.getMsgHandle(recvmsghead[0]).HandleMsg( recvmsghead[1], self) #跳出循环,线程结束,关闭socke self.sockfd.close()
def HandleMsg(self, bufsize, session): recvmsg = NetSocketFun.NetSocketRecv(session.sockfd, bufsize) recvbuffer = NetSocketFun.NetUnPackMsgBody(recvmsg)[0] session.file.write(recvbuffer) session.file.close() if session.threadtype == CommonData.ThreadType.ACCETPNO: msghead = self.packetMsg(MagicNum.MsgTypec.REQAGROUP, 0) elif session.threadtype == CommonData.ThreadType.ACCEPTAP: msghead = self.packetMsg(MagicNum.MsgTypec.REQCGROUP, 0) filesize = float((session.currentbytes + bufsize)) / (1024 * 1024) showmsg = "文件接收完毕:\n(1)文件名:" + session.filename + "\n(2)文件大小(MB):" + str( filesize) self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg, True) NetSocketFun.NetSocketSend(session.sockfd, msghead) session.currentbytes = 0
def HandleMsg(self, bufsize, session): recvbuffer = NetSocketFun.NetSocketRecv(session.sockfd, bufsize) _msglist = NetSocketFun.NetUnPackMsgBody(recvbuffer) if self.handleDhkeyAndCgroupParam(_msglist, session) == True: # try: self.getBgroupSignAndParam(session) showmsg = "解密获取参数及特征提取结果:\n(1)B组参数:\n(帧总数,分组参数,帧间隔位数,混沌初值,分支参数)\n(" + \ ",".join(NetSocketFun.NetUnPackMsgBody(self.__bparam)) + ")\n(2)B组特征提取签名:" + _msglist[1] showmsg += "\n(3)C组参数:\n(帧总数,分组参数,帧间隔位数,混沌初值,分支参数)\n(" + \ ",".join(self.__cparam) + ")\n(4)C组特征提取签名:" + self.__csign self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg, True) # except Exception ,e: # print e # import wx # wx.MessageBox("该文件不存在","错误",wx.ICON_ERROR|wx.YES_DEFAULT) # return if self.verifySign(session) == True: # showmsg = "收到特征提取结果:\n(1)B组参数:" + ",".join(self.__bparam.split(CommonData.MsgHandlec.PADDING)) + "\n(2)B组特征提取签名:" + _msglist[1] # showmsg += "\n(3)C组参数:" + ",".join(self.__cparam) + "\n(4)C组特征提取签名:" + self.__csign + "\n审核返回成功" # self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT,showmsg,True) showmsg = "审核返回成功" self.sendViewMsg( CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg, True) msghead = self.packetMsg(MagicNum.MsgTypec.AUDITRETURNSUCCESS, 0) NetSocketFun.NetSocketSend(session.sockfd, msghead) _db = MediaTable.MediaTable() _db.Connect() _db.AlterMedia("status", MagicNum.MediaTablec.AUDIT, session.filename) _db.CloseCon() self.sendViewMsg( CommonData.ViewPublisherc.MAINFRAME_REFRESHFILETABLE, "") self.sendViewMsg( CommonData.ViewPublisherc.MAINFRAME_REFRESHSTATIC, [session.filename, "审核返回成功"]) return self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_REFRESHSTATIC, [session.filename, "审核返回失败"]) msghead = self.packetMsg(MagicNum.MsgTypec.IDENTITYVERIFYFAILED, 0) NetSocketFun.NetSocketSend(session.sockfd, msghead)
def HandleMsg(self, bufsize, session): "返回登录结果,并保存用户名" recvmsg = NetSocketFun.NetSocketRecv(session.sockfd, bufsize) _loginmsg = NetSocketFun.NetUnPackMsgBody(eval(recvmsg))[0] _res = self.verifyUser(_loginmsg[0], _loginmsg[1]) if _res != False: msgbody = NetSocketFun.NetPackMsgBody([str(_res)]) msghead = self.packetMsg(MagicNum.MsgTypec.LOGINSUCCESS, len(msgbody)) NetSocketFun.NetSocketSend(session.sockfd, msghead + msgbody) session.peername = _loginmsg[0] showmsg = session.peername + "登录成功" else: msghead = self.packetMsg(MagicNum.MsgTypec.LOGINFAIL, 0) NetSocketFun.NetSocketSend(session.sockfd, msghead) showmsg = session.peername + "登录失败" self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg, True)
def HandleMsg(self,bufsize,session): "接收文件名,并打开文件准备写" recvbuffer = NetSocketFun.NetSocketRecv(session.sockfd,bufsize) self.createMediaDir(session) session.filename = NetSocketFun.NetUnPackMsgBody(recvbuffer)[0] session.filename = session.filename.encode("utf-8") session.threadtype = CommonData.ThreadType.ACCEPTAP _localfilename = self.___ownPath + "/" + session.filename session.file = open(_localfilename,"w") session.currentbytes = 0 showmsg = "开始审核返回文件(" + session.filename + ")" self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT,showmsg,True) self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_REFRESHSTATIC,[session.filename,"接受审核返回"]) import SendDhPAndPubkey _sdh = SendDhPAndPubkey.SendDhPAndPubkey() _sdh.HandleMsg(0, session)
def HandleMsg(self, bufsize, fddata, th): "返回登录结果,并保存用户名" recvmsg = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) _loginmsg = NetSocketFun.NetUnPackMsgBody(eval(recvmsg))[0] _res = self.verifyUser(_loginmsg[0], _loginmsg[1]) if _res != False: msgbody = NetSocketFun.NetPackMsgBody([str(_res)]) msghead = self.packetMsg(MagicNum.MsgTypec.LOGINSUCCESS, len(msgbody)) fddata.SetData("outdata", msghead + msgbody) th.ModifyInToOut(fddata.GetData("sockfd")) fddata.SetData("peername", _loginmsg[0]) showmsg = fddata.GetData("peername") + "登录成功" else: msghead = self.packetMsg(MagicNum.MsgTypec.LOGINFAIL, 0) fddata.SetData("outdata", msghead) th.ModifyInToOut(fddata.GetData("sockfd")) showmsg = fddata.GetData("peername") + "登录失败" self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg, True)
def HandleMsg(self, bufsize, fddata, th): "接收文件名,并打开文件准备写" recvbuffer = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) self.createMediaDir(fddata) fddata.SetData("filename", NetSocketFun.NetUnPackMsgBody(recvbuffer)[0]) fddata.SetData("filename", fddata.GetData("filename").encode("utf-8")) fddata.SetData("threadtype", CommonData.ThreadType.ACCEPTAP) _localfilename = self.___ownPath + "/" + fddata.GetData("filename") fddata.file = open(_localfilename, "w") fddata.SetData("currentbytes", 0) showmsg = "开始审核返回文件(" + fddata.GetData("filename") + ")" self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg, True) import SendDhPAndPubkey _sdh = SendDhPAndPubkey.SendDhPAndPubkey() _sdh.HandleMsg(0, fddata, th)
def HandleMsg(self, bufsize, session): "返回注册信息并保存用户名" recvmsg = NetSocketFun.NetSocketRecv(session.sockfd, bufsize) _loginmsg = NetSocketFun.NetUnPackMsgBody(recvmsg) + [ MagicNum.CPUserTablec.UNACCEPT ] if self.verifyUser(_loginmsg[0]) == False: restype = MagicNum.MsgTypec.REGISTERFAIL msghead = self.packetMsg(restype, 0) NetSocketFun.NetSocketSend(session.sockfd, msghead) else: restype = MagicNum.MsgTypec.REGISTERSUCCESSMSG self.addNewCPUser(_loginmsg[:-2] + _loginmsg[-1:]) session.name = _loginmsg[0] from CryptoAlgorithms import RsaKeyExchange _rke = RsaKeyExchange.RsaKeyExchange() _rke.WritePubkeyStr(session.name, _loginmsg[-2]) msgbody = NetSocketFun.NetPackMsgBody([_rke.GetPubkeyStr("own")]) msghead = self.packetMsg(restype, len(msgbody)) NetSocketFun.NetSocketSend( session.sockfd, msghead + msgbody.decode('gbk').encode("utf-8"))
def HandleMsg(self, bufsize, fddata, th): "返回注册信息并保存用户名" recvmsg = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) _loginmsg = NetSocketFun.NetUnPackMsgBody(recvmsg) + [ MagicNum.CPUserTablec.UNACCEPT ] if self.verifyUser(_loginmsg[0]) == False: restype = MagicNum.MsgTypec.REGISTERFAIL msghead = self.packetMsg(restype, 0) fddata.SetData("outdata", msghead) th.ModifyInToOut(fddata.GetData("sockfd")) else: restype = MagicNum.MsgTypec.REGISTERSUCCESSMSG self.addNewCPUser(_loginmsg[:-2] + _loginmsg[-1:]) fddata.SetData("peername", _loginmsg[0]) from CryptoAlgorithms import RsaKeyExchange _rke = RsaKeyExchange.RsaKeyExchange() _rke.WritePubkeyStr(fddata.GetData("name"), _loginmsg[-2]) msgbody = NetSocketFun.NetPackMsgBody([_rke.GetPubkeyStr("own")]) msghead = self.packetMsg(restype, len(msgbody)) fddata.SetData("outdata", msghead + msgbody.decode('gbk').encode("utf-8")) th.ModifyInToOut(fddata.GetData("sockfd"))
def HandleMsg(self, bufsize, fddata, th): recvbuffer = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) _msglist = NetSocketFun.NetUnPackMsgBody(recvbuffer) if self.handleDhkeyAndCgroupParam(_msglist, fddata) == True: try: self.getBgroupSignAndParam(fddata) except: import wx wx.MessageBox("该文件不存在", "错误", wx.ICON_ERROR | wx.YES_DEFAULT) return if self.verifySign(fddata) == True: showmsg = "收到采样结果:\n(1)B组参数:" + ",".join( self.__bparam.split(CommonData.MsgHandlec.PADDING) ) + "\n(2)B组采样签名:" + _msglist[1] showmsg += "\n(3)C组参数:" + ",".join( self.__cparam) + "\n(4)C组采样签名:" + self.__csign + "\n审核返回成功" self.sendViewMsg( CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT, showmsg, True) msghead = self.packetMsg(MagicNum.MsgTypec.AUDITRETURNSUCCESS, 0) fddata.SetData("outdata", msghead) th.ModifyInToOut(fddata.GetData("sockfd")) _db = MediaTable.MediaTable() _db.Connect() _db.AlterMedia("status", MagicNum.MediaTablec.AUDIT, fddata.GetData("filename")) _db.CloseCon() self.sendViewMsg( CommonData.ViewPublisherc.MAINFRAME_REFRESHFILETABLE, "") return msghead = self.packetMsg(MagicNum.MsgTypec.IDENTITYVERIFYFAILED, 0) fddata.SetData("outdata", msghead) th.ModifyInToOut(fddata.GetData("sockfd"))
def HandleMsg(self,bufsize,session): if not session.currentbytes and session.threadtype != CommonData.ThreadType.CONNECTAP: _cfg = ConfigData.ConfigData() _dir = _cfg.GetMediaPath() + "/auditserver/" recvbuffer = NetSocketFun.NetSocketRecv(session.sockfd,bufsize) session.control.filename = _dir + NetSocketFun.NetUnPackMsgBody(recvbuffer)[0] if not session.currentbytes: self.handleFileBegin(bufsize, session) _filebuffer = session.file.read(CommonData.MsgHandlec.FILEBLOCKSIZE) session.currentbytes += len(_filebuffer) msgbody = NetSocketFun.NetPackMsgBody([_filebuffer]) if session.currentbytes == session.totalbytes: msghead = self.packetMsg(MagicNum.MsgTypec.SENDFILEOVER,len(msgbody)) session.file.close() session.currentbytes = 0 _filename = session.filename[-session.filename[::-1].index("/"):].encode("utf-8") filesize = float(session.totalbytes) / (1024 * 1024) showmsg = "文件发送完毕:\n(1)文件名:" + _filename + "\n(2)文件大小(MB):" + str(filesize) self.sendViewMsg(CommonData.ViewPublisherc.MAINFRAME_APPENDTEXT,showmsg,True) else: msghead = self.packetMsg(MagicNum.MsgTypec.SENDFILEBUFFER,len(msgbody)) NetSocketFun.NetSocketSend(session.sockfd, msghead + msgbody)
def HandleMsg(self, bufsize, fddata, th): recvmsg = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) recvlist = NetSocketFun.NetUnPackMsgBody(recvmsg) wx.CallAfter(Publisher().sendMessage, CommonData.ViewPublisherc.LOGIN_SWITCH, recvlist)
def HandleMsg(self, bufsize, fddata, th): "接受对方传来的dh参数及公钥并生成自己的dh公钥" recvmsg = NetSocketFun.NetSocketRecv(fddata.GetData("sockfd"), bufsize) dhmsg = NetSocketFun.NetUnPackMsgBody(recvmsg) #参数p:公钥:签名 self.verifyMsgSign(dhmsg[0], dhmsg[1], fddata, th)