Changes by AYMAN

This commit is contained in:
Faraphel 2024-07-03 23:42:05 +02:00
parent 74c29a5c93
commit 8202d75e48
2 changed files with 64 additions and 0 deletions

16
source/wtf/Electeur.py Normal file
View file

@ -0,0 +1,16 @@
class Electeur:
def __init__(self, nom, prenom, empreinte_digitale):
self.nom = nom
self.prenom = prenom
self.empreinte_digitale = empreinte_digitale
self.carte_election = None
self.code_pin = None
def recevoir_carte_election(self, carte_election):
self.carte_election = carte_election
def definir_code_pin(self, code_pin):
self.code_pin = code_pin
def authentifier(self):
return self.carte_election.est_authentique(self.empreinte_digitale, self.code_pin)

View file

@ -0,0 +1,48 @@
from source.Card import Card
from source.wtf.Electeur import Electeur
from source.wtf.Machine2 import Machine2
if __name__ == "__main__":
# Création d'un électeur
electeur1 = Electeur("Alice", "Dupont", "empreinte_alice123")
electeur2 = Electeur("Bob", "Martin", "empreinte_bob456")
# Création de cartes d'élection pour les électeurs
carte1 = Card(electeur1, "cle_publique_alice")
carte2 = Card(electeur2, "cle_publique_bob")
# Activation des cartes avec un code PIN
carte1.activer("cle_privee_chiffree_alice", "code_pin_chiffre_alice")
carte2.activer("cle_privee_chiffree_bob", "code_pin_chiffre_bob")
# Attribution des cartes aux électeurs
electeur1.recevoir_carte_election(carte1)
electeur2.recevoir_carte_election(carte2)
# Définition des codes PIN
electeur1.definir_code_pin("1234")
electeur2.definir_code_pin("5678")
# Création d'une machine à voter avec un certificat
certificat_machine = "certificat_de_la_machine"
machine = Machine2(certificat_machine)
# Chargement de la liste électorale dans la machine
liste_electorale = {
"cle_publique_alice": electeur1.nom,
"cle_publique_bob": electeur2.nom
}
machine.charger_liste_electorale(liste_electorale)
# Authentification et vote d'un électeur
if machine.authentifier_electeur(electeur1):
preuve_vote = {
"vote": "Choix d'Alice",
"preuve": "Preuve de vote d'Alice"
}
machine.enregistrer_vote(preuve_vote)
# Fin du vote et publication des résultats
machine.fin_de_vote()
resultats = machine.publier_resultats()
print("Résultats publiés:", resultats)