SSL over TCP Client\server

Tal Bar-Or tbaror at gmail.com
Thu Dec 24 08:24:12 EST 2015


Hi All ,

I need to write some basic tcp client/server that communicate over SSL
Its seems i managed to run the server side listen with SSL but i am missing the client part.
If someone could advice me how to saet the client will be appreciated
Thanks


Server side
============

class SingleTCPHandler(socketserver.BaseRequestHandler):
    "One instance per connection.  Override handle(self) to customize action."


    def handle(self):
        try:

            
            #print(self.server.serverset)
            data = json.loads(self.request.recv(1024).decode('UTF-8').strip())
            # process the data, i.e. print it:
            #print(self.client_address)
            print(data['AuthPass'],self.server.serverset['CryptKey'],self.server.serverset['Password'])
            Authstart = AuthMec(data['AuthPass'],self.server.serverset['CryptKey'],self.server.serverset['Password'])
            Authstart.DecPass()
            
            
            # send some 'ok' back
            #self.server.serverset['QuarantineIp']
            self.request.sendall(bytes(json.dumps({'QuarantineIp':self.server.serverset['QuarantineIp'],'SERVERIP':self.client_address[0]}), 'UTF-8'))
        except Exception as e:
            print("Exception wile receiving message: ", e)


class TcpSessionServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
    # Ctrl-C will cleanly kill all spawned threads
    daemon_threads = True
    # much faster rebinding
    allow_reuse_address = True
    test = "test"

    def __init__(self, server_address, RequestHandlerClass):
        socketserver.TCPServer.__init__(self, server_address, RequestHandlerClass)
        self.socket = ssl.wrap_socket(
        self.socket, server_side=True, certfile="cert.pem",do_handshake_on_connect=False)
        #read configuraiton and seve it as class member
        serverinit = GetServerInfo()


Clent Side
===========

class TcpClientConnect:
    def __init__(self,Datapayload,EnforcementHost,SrvPort):
        self.Datapayload = Datapayload
        self.EnforcementHost = EnforcementHost
        self.SrvPort = SrvPort

    def ContactEnforcementHost(self):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((self.EnforcementHost, int(self.SrvPort)))
        s.send(bytes(json.dumps(self.Datapayload), 'UTF-8'))
        #Waiting for results
        result = s.recv(1024)
        txres =  result.decode('UTF-8')
        print(txres)

        jsresult = json.loads(txres)
        print("%s"%jsresult)
        s.close()

  



More information about the Python-list mailing list