Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """######################################
- # A simple socket to socket SSL chat.#
- ######################################
- The certificates are created beforehand by the serverside and cert.pem
- is given to the client.
- (Send it in an email so the NSA can get a copy too :D)
- To create certificate and key in bash:
- openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout key.pem
- Now all I need is somebody intelligent to converse with ;)
- --lolamontes69
- """
- from socket import *
- import ssl, pprint
- def server_side():
- ipaddy = str(raw_input('Enter IP Address\n >'))
- portno = int(raw_input('Enter Port Number\n >'))
- bindsocket = socket(AF_INET,SOCK_STREAM)
- bindsocket.bind((ipaddy, portno))
- bindsocket.listen(5)
- newsocket, fromaddr = bindsocket.accept()
- connstream = ssl.wrap_socket(newsocket,server_side=True,certfile="cert.pem",keyfile="key.pem")
- while True:
- data = connstream.read()
- print fromaddr,":",data
- resp1 = str(raw_input('Reply\n >'))
- if resp1=="": resp1="received and understood"
- connstream.write(resp1)
- if resp1[:3]=='bye': break
- connstream.shutdown(SHUT_RDWR)
- connstream.close()
- del connstream
- print "Socket closed and deleted."
- ###############################################################################
- from socket import *
- import ssl, pprint
- def client_side():
- ipaddy = str(raw_input('Enter IP Address\n >'))
- portno = int(raw_input('Enter Port Number\n >'))
- s = socket(AF_INET, SOCK_STREAM)
- ssl_sock = ssl.wrap_socket(s,ca_certs="cert.pem",cert_reqs=ssl.CERT_REQUIRED)
- ssl_sock.connect((ipaddy, portno))
- fromaddr = repr(ssl_sock.getpeername())
- print fromaddr
- print ssl_sock.cipher()
- print pprint.pformat(ssl_sock.getpeercert())
- while True:
- msg1 = str(raw_input('Enter message to send\n >'))
- if msg1=="": msg1="received and understood"
- ssl_sock.write(msg1)
- data = ssl_sock.read()
- print fromaddr,':',data
- if msg1[:3]=="bye" or data[:3]=="bye": break
- ssl_sock.close()
- del ssl_sock
- print "Socket closed and deleted."
- ###############################################################################
Advertisement
Add Comment
Please, Sign In to add comment