Browse Source

ajout fonctions chiffre_xor, send et receive dans Interface;correction bug dans InterfaceServeur

master
bollet.c 6 months ago
parent
commit
c9ba3aaaf5
  1. 25
      Interface.py
  2. 3
      InterfaceServeur.py

25
Interface.py

@ -19,11 +19,15 @@ class Interface(tk.Tk):
self.sendButton.pack() self.sendButton.pack()
self.recvButton = tk.Button(self, text="Receive", command=self.receive) self.recvButton = tk.Button(self, text="Receive", command=self.receive)
self.recvButton.pack() self.recvButton.pack()
#
self._cleSymetrique = None
def send(self): def send(self):
"""Envoie le message chiffré.""" """Envoie le message chiffré."""
message = self.entree.get().encode("utf8") message = self.entree.get().encode("utf8")
# à compléter pour chiffrer le message # à compléter pour chiffrer le message
if self._cleSymetrique != None:
message = chiffre_xor(message, self._cleSymetrique)
self.connexion.send(message) self.connexion.send(message)
def receive(self): def receive(self):
@ -31,8 +35,25 @@ class Interface(tk.Tk):
Attention : bloque tant que le serveur n'envoie rien.""" Attention : bloque tant que le serveur n'envoie rien."""
message = self.connexion.recv() message = self.connexion.recv()
# à compléter pour déchiffrer le message # à compléter pour déchiffrer le message
self.message.set(message.decode("utf8")) if self._cleSymetrique != None:
message = chiffre_xor(message, self._cleSymetrique)
self.message.set(message_dechiffre.decode("utf8"))
def set_cleSymetrique(self, val):
"""Définit/met à jour la clé symétrique"""
self._cleSymetrique = val
def destroy(self): def destroy(self):
self.connexion.close() self.connexion.close()
tk.Tk.destroy(self) tk.Tk.destroy(self)
def chiffre_xor(message, cle):
"""chiffre/déchiffre un message à l'aide d'une clé"""
res = b""
for i in range(len(message)):
lettre = bytes([message[i] ^ cle[i%len(cle)]])
res += lettre
return res

3
InterfaceServeur.py

@ -11,7 +11,6 @@ class InterfaceServeur(Interface):
self.e = 42205 self.e = 42205
self.d = 769020235650503533 self.d = 769020235650503533
# à compléter # à compléter
self.cle_symetrique = None
self.btn_hello = tk.Button("Serveur Hello", command=self.hello) self.btn_hello = tk.Button("Serveur Hello", command=self.hello)
self.btn_finished = tk.Button("Finished", command=self.finish) self.btn_finished = tk.Button("Finished", command=self.finish)
@ -27,7 +26,7 @@ class InterfaceServeur(Interface):
"""attend la réception de la clé symétrique, la déchiffre avec sa clé privée, la """attend la réception de la clé symétrique, la déchiffre avec sa clé privée, la
mémorise et envoie le message Finished chiffré avec cette clé""" mémorise et envoie le message Finished chiffré avec cette clé"""
msg_recu = self.receive() msg_recu = self.receive()
self.cle_symetrique = self.dechiffre_RSA(msg) self.set_cleSymetrique(self.dechiffre_RSA(msg))
self.send("Finished") self.send("Finished")
def dechiffre_RSA(self, msg): def dechiffre_RSA(self, msg):

Loading…
Cancel
Save