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