Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
from SignatureBasique import SignatureBasique
from SignatureHorodatee import SignatureHorodatee
from SignatureLT import SignatureLT
from SignatureLTA import SignatureLTA
from Errors import *
from GlobalVariables import docs, docs_archived
class Document:
def __init__(self, nom_fichier):
fichier = open(nom_fichier, "r")
self.__nom_fichier = nom_fichier
fichier.close()
self.__signature = "No signature"
docs[nom_fichier] = self
def sign_Basique(self, cle_privee, certificat):
if self.__signature == "No signature":
info = self.get_info()
self.__signature = SignatureBasique(info, cle_privee, certificat)
else:
print("Erreur : Document comporte déjà une signature")
raise SignError("Erreur : Document comporte déjà une signature")
def sign_Horodatee(self, AH):
if self.__signature.get_type() == "signature basique":
new_signature = SignatureHorodatee(self.__signature, AH)
self.__signature = new_signature
else:
print("Erreur : Document ne comporte pas la signature de classe précédente (signature basique)")
raise SignError("Erreur : Document ne comporte pas la signature de classe précédente (signature basique)")
def sign_LT(self, check = True):
if self.__signature.get_type() == "signature horodatee":
new_signature = SignatureLT(self.__signature, check)
self.__signature = new_signature
else:
print("Erreur : Document ne comporte pas la signature de classe précédente (signature horodatée)")
raise SignError("Erreur : Document ne comporte pas la signature de classe précédente (signature horodatée)")
def sign_LTA(self, AH, check = True):
if self.__signature.get_type() == "signature LT" or self.__signature.get_type() == "signature LTA":
new_signature = SignatureLTA(self.__signature, AH, check)
self.__signature = new_signature
else:
print("Erreur : Document ne comporte pas la signature de classe précédente (signature LT ou LTA) ")
raise SignError("Erreur : Document ne comporte pas la signature de classe précédente (signature LT ou LTA)")
def archive_doc(self, AH):
if self.__signature == "No signature":
raise ArchiveError("Ce système d'archivage n'accepte que des documents signés")
elif self.__signature.get_type()== "signature basique":
self.sign_Horodatee(AH)
self.sign_LT(check=False)
self.sign_LTA(AH,check=False)
elif self.__signature.get_type()== "signature horodatee":
self.sign_LT()
self.sign_LTA(AH,check=False)
elif self.__signature.get_type()== "signature LT":
self.sign_LTA(AH)
elif self.__signature.get_type()== "signature LTA":
self.sign_LTA(AH)
nom_fichier = self.__nom_fichier
docs_archived[nom_fichier] = self
del docs[nom_fichier]
def get_info(self):
fichier = open(self.__nom_fichier, "r")
content = fichier.read()
fichier.close()
return content
def get_signature(self):
return self.__signature