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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
openssl req -x509 -newkey rsa:2048 -keyout mykey.pem -out cert.pem -days 365
contexte : je sais comment signer un "teste brut", voici comment je procède :
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)
objectif : au lieu de signer un texte brut "text" je veux signer mon document "doc.pdf" (format PDFA1)

Dans l'idée ce serait qq chose comme :
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 ...
Comment intégrer la signature à mon PDF initial
et par la suite comment extraire le PDFinitial du PDFsigné
Avez-vous des suggestions?