Bonjour à tous,

J'ouvre un pdf à l'interieur d'une page Internet à l'aide de la librairie fpdf.
Voici le code permettant son ouverture :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,$_POST['texte']);
$pdf->Output();
Je souhaiterais ensuite simplement signer ce document pdf à l'aide d'un certificat installé sur le poste.

J'ai quelques pistes mais je ne sais pas comment faire. Voici quelques fonctions qui m'ont semblé importantes (pris de la doc php) :

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//tableau contenant les infos du certificat
$dn = array(
    "countryName" => "FR",
    "stateOrProvinceName" => "Bouche-du-Rhone",
    "localityName" => "Marseille",
    "organizationName" => "Home server",
    "organizationalUnitName" => "Home Server",
    "commonName" => "localhost",
    "emailAddress" => "an.favier@laposte.net"
);
 
// Génère les clés privée et publique
$privkey = openssl_pkey_new();
 
// Génère la requête de signature de certificat
$csr = openssl_csr_new($dn, $privkey);
 
// Cette commande crée une certificat auto chiffré
// $sscert = openssl_csr_sign($csr, null, $privkey, 365);
 
 
// On suppose que $data contient les données à signer
// lecture de la clé publique pour chaque destinataire
 
$fp = fopen("ssl/client_pvk.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);
 
// calcule de la signature
openssl_sign($data, $signature, $pkeyid);
 
// libère les clés de la mémoire
openssl_free_key($pkeyid);
Il est apparemment possible de signer les données dans le cas ou $data est une string.
Est ce que quelq'un pourrait me dire comment signer numeriquement le pdf ?

Merci d'avance.

P.S : j'ai un server Wamp avec apache 2.2.8 et PHP 5.2.6. J'ai importé le dll dans system32 et activé l'extension ssl dans PHP. Les fonctions openssl sont donc bien activées.