Skip to content
Snippets Groups Projects
Commit e2327cce authored by Dominik Fuhrmann's avatar Dominik Fuhrmann
Browse files

debugging scripts

parent 284c4ddd
No related branches found
No related tags found
No related merge requests found
# CLIENT-SKRIPT
import os import os
import socket import socket
import wolfssl import wolfssl
...@@ -12,27 +11,33 @@ def run_client(file_path): ...@@ -12,27 +11,33 @@ def run_client(file_path):
context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_3) # TLS 1.3 verwenden context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_3) # TLS 1.3 verwenden
context.load_verify_locations(ca_cert) context.load_verify_locations(ca_cert)
context.set_ciphers(cipher_suite) context.set_ciphers(cipher_suite)
print(f"TLS-Kontext mit Cipher Suite '{cipher_suite}' erfolgreich initialisiert.")
print(f"Cipher Suite '{cipher_suite}' erfolgreich gesetzt!")
# Sichere Verbindung mit dem Server herstellen # Sichere Verbindung mit dem Server herstellen
with socket.create_connection(("192.168.201.132", 5000)) as sock: try:
with context.wrap_socket(sock, server_hostname="192.168.201.132") as ssl_sock: with socket.create_connection(("192.168.201.132", 5000), timeout=10) as sock:
print("Mit dem Server verbunden!") with context.wrap_socket(sock, server_hostname="192.168.201.132") as ssl_sock:
print("Mit dem Server verbunden und TLS-Handshake abgeschlossen.")
# Datei senden # Datei senden
with open(file_path, "rb") as f: with open(file_path, "rb") as f:
while chunk := f.read(1024): while chunk := f.read(1024):
ssl_sock.sendall(chunk) ssl_sock.sendall(chunk)
print(f"Datei '{file_path}' erfolgreich an den Server gesendet.") print(f"Datei '{file_path}' erfolgreich an den Server gesendet.")
except FileNotFoundError:
print(f"Die Datei '{file_path}' wurde nicht gefunden!")
except socket.timeout:
print("Die Verbindung zum Server ist abgelaufen!")
except wolfssl.SSLError as e:
print(f"TLS-Fehler: {e}")
except Exception as e:
print(f"Allgemeiner Fehler: {e}")
if __name__ == "__main__": if __name__ == "__main__":
# Dateipfad der zu übertragenden Datei # Dateipfad der zu übertragenden Datei
file_to_send = "../testData/test.txt" file_to_send = "../testData/test.txt"
# Stelle sicher, dass die Datei existiert if os.path.exists(file_to_send):
if not os.path.exists(file_to_send): run_client(file_to_send)
print(f"Die Datei '{file_to_send}' wurde nicht gefunden!")
else: else:
run_client(file_to_send) print(f"Die Datei '{file_to_send}' wurde nicht gefunden!")
\ No newline at end of file
...@@ -12,34 +12,41 @@ def run_server(): ...@@ -12,34 +12,41 @@ def run_server():
context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_3) # TLS 1.3 verwenden context = wolfssl.SSLContext(wolfssl.PROTOCOL_TLSv1_3) # TLS 1.3 verwenden
context.load_cert_chain(certfile=cert_file, keyfile=key_file) context.load_cert_chain(certfile=cert_file, keyfile=key_file)
context.set_ciphers(cipher_suite) context.set_ciphers(cipher_suite)
print(f"TLS-Kontext mit Cipher Suite '{cipher_suite}' erfolgreich initialisiert.")
# Server-Socket erstellen # Server-Socket erstellen
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.settimeout(10) # Setze einen Timeout für Verbindungen
sock.bind(("0.0.0.0", 5000)) # Lauschen auf allen Schnittstellen sock.bind(("0.0.0.0", 5000)) # Lauschen auf allen Schnittstellen
sock.listen(5) sock.listen(5)
print(f"Server läuft auf Port 5000 mit Cipher Suite: {cipher_suite}...") print(f"Server läuft auf Port 5000 und wartet auf Verbindungen...")
while True: while True:
client_sock, addr = sock.accept()
print(f"Verbindung akzeptiert von {addr}!")
try: try:
ssl_sock = context.wrap_socket(client_sock, server_side=True) client_sock, addr = sock.accept()
print(f"Verbindung akzeptiert von {addr}!")
with context.wrap_socket(client_sock, server_side=True) as ssl_sock:
print(f"TLS-Handshake erfolgreich mit {addr}.")
# Datei empfangen # Datei empfangen
with open("received_file.txt", "wb") as f: with open("received_file.txt", "wb") as f:
while True: while True:
data = ssl_sock.recv(1024) data = ssl_sock.recv(1024)
if not data: if not data:
break break
f.write(data) f.write(data)
print("Datei erfolgreich empfangen und gespeichert als 'received_file.txt'") print("Datei erfolgreich empfangen und gespeichert als 'received_file.txt'")
except Exception as e: except Exception as e:
print(f"Fehler bei der Verarbeitung der Verbindung: {e}") print(f"Fehler bei der Verarbeitung der Verbindung: {e}")
finally: finally:
ssl_sock.close() try:
client_sock.close() client_sock.close()
except Exception:
pass
if __name__ == "__main__": if __name__ == "__main__":
run_server() try:
\ No newline at end of file run_server()
except KeyboardInterrupt:
print("\nServer wurde beendet.")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment