Bonjour les amis,
Après de longues recherches sur la toile, je n'arrive pas à mettre la main sur une méthode pour signer numériquement une document PDF avec la classe M2Crypto de Python
je travaille sous debian6 x86_64 et python2.6.6
et j'utilise une clé RSA 2048 issue d'un certificat self-signed pour mes tests réalisé avec la commande native openssl :
contexte : je sais comment signer un "teste brut", voici comment je procède :
Code : Sélectionner tout - Visualiser dans une fenêtre à part openssl req -x509 -newkey rsa:2048 -keyout mykey.pem -out cert.pem -days 365
objectif : au lieu de signer un texte brut "text" je veux signer mon document "doc.pdf" (format PDFA1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 from M2Crypto import RSA, EVP import base64, hashlib pkey = RSA.load_key("mykey.pem") signText = pkey.sign(hashlib.sha256("text").digest()) print base64.b64encode(signText)
Dans l'idée ce serait qq chose comme :
Comment intégrer la signature à mon PDF initial
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 from M2Crypto import RSA, EVP import base64, hashlib # le PDF que je veux signer monPDF = open('test.pdf','rb').read() pkey = RSA.load_key("mykey.pem") signPDF = pkey.sign(hashlib.sha256(monPDF).digest()) # ou signPDF = pkey.sign(hashlib.sha256(monPDF).hexdigest()) encodeSignPDF = base64.b64encode(signPDF) # comment intégrer la signature "encodeSignPDF" à mon PDF # c'est ici que je coince ...
et par la suite comment extraire le PDFinitial du PDFsigné
Avez-vous des suggestions?
Partager