Advertisement
Guest User

Untitled

a guest
May 24th, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. #install openssl
  2. #sudo aptitude install python-openssl
  3.  
  4. from OpenSSL import SSL
  5. import socket, SocketServer
  6.  
  7. class SSlSocketServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
  8.  
  9. def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True):
  10. SocketServer.BaseServer.__init__(self, server_address,
  11. RequestHandlerClass)
  12. ctx = SSL.Context(SSL.SSLv3_METHOD)
  13. cert = 'cert.pem'
  14. key = 'private_key.pem'
  15. ctx.use_privatekey_file(key)
  16. ctx.use_certificate_file(cert)
  17. self.socket = SSL.Connection(ctx, socket.socket(self.address_family,
  18. self.socket_type))
  19. if bind_and_activate:
  20. self.server_bind()
  21. self.server_activate()
  22. def shutdown_request(self,request):
  23. request.shutdown()
  24.  
  25. class Decoder(SocketServer.StreamRequestHandler):
  26. def setup(self):
  27. self.connection = self.request
  28. self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
  29. self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)
  30.  
  31. def handle(self):
  32. try:
  33. socket1 = self.connection
  34. str1 = socket1.recv(4096)
  35. print str1
  36. except Exception, e:
  37. print 'socket error',e
  38. def main():
  39. server = SSlSocketServer(('127.0.0.1', 9999), Decoder)
  40. server.serve_forever()
  41. if __name__ == '__main__':
  42. main()
  43.  
  44.  
  45.  
  46. #now test server
  47.  
  48. import socket
  49. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  50. s.connect(('localhost', 9999))
  51. sslSocket = socket.ssl(s)
  52. print repr(sslSocket.server())
  53. print repr(sslSocket.issuer())
  54. sslSocket.write('Hello secure socket\n')
  55. s.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement