[text] ssl

Viewer

  1. Server
  2.  
  3. import ssl
  4. import socket
  5.  
  6. # Server configuration
  7. HOST = 'localhost'
  8. PORT = 12345
  9. CERTIFICATE_FILE = 'server.crt'
  10. PRIVATE_KEY_FILE = 'server.key'
  11.  
  12. # Create SSL context
  13. context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
  14. context.load_cert_chain(certfile=CERTIFICATE_FILE, keyfile=PRIVATE_KEY_FILE)
  15.  
  16. # Create socket
  17. with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
  18.     server_socket.bind((HOST, PORT))
  19.     server_socket.listen(1)
  20.  
  21.     # Wrap socket with SSL
  22.     with context.wrap_socket(server_socket, server_side=True) as ssl_server_socket:
  23.         print("Server is listening...")
  24.  
  25.         # Accept incoming connection
  26.         conn, addr = ssl_server_socket.accept()
  27.         with conn:
  28.             print('Connected by', addr)
  29.             while True:
  30.                 data = conn.recv(1024)
  31.                 if not data:
  32.                     break
  33.                 print('Received:', data.decode())
  34.                 conn.sendall(data)
  35.  
  36. Client
  37.  
  38. import ssl
  39. import socket
  40.  
  41. # Client configuration
  42. HOST = 'localhost'
  43. PORT = 12345
  44. CERTIFICATE_FILE = 'server.crt'
  45.  
  46. # Create SSL context
  47. context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
  48. context.load_verify_locations(CERTIFICATE_FILE)
  49.  
  50. # Create socket
  51. with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
  52.     # Wrap socket with SSL
  53.     with context.wrap_socket(client_socket, server_hostname=HOST) as ssl_client_socket:
  54.         ssl_client_socket.connect((HOST, PORT))
  55.         print("Connected to server.")
  56.  
  57.         # Send data to server
  58.         message = "Hello, server!"
  59.         ssl_client_socket.sendall(message.encode())
  60.  
  61.         # Receive response from server
  62.         data = ssl_client_socket.recv(1024)
  63.         print('Received:', data.decode())
  64.  

Editor

You can edit this paste and save as new:


File Description
  • ssl
  • Paste Code
  • 16 Apr-2024
  • 1.78 Kb
You can Share it: