openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt -- Chiffre un message S/MIME

Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags])

openssl_pkcs7_encrypt() prend le contenu du fichier infilename et le chiffre en utilisant un chiffrement RC2 à 40-bit, de manière à ce que le message ne puisse être lu que par le possesseur de recipcerts, qui peut être un certificat X.509, ou un tableau de certificats X.509. headers est un tableau d'en-têtes qui seront ajouté en tête de message, une fois que les données auront été chiffrées. flags peut être utilisé pour spécifier des options qui affecteront le chiffrement (voir les constantes PKCS7). headers peut être un tableau associatif, dont les clés sont les noms d'en-tête, ou bien un tableau indexé dont chaque ligne contient un en-tête complet.

Exemple 1. Exemple avec openssl_pkcs7_encrypt()

<?php
// le message que vous souhaitez chiffrer et envoyer à votre agent secret
// en mission commandée, appelé "nighthawk". Vous avez son certificat
// dans le fichier "nighthawk.pem"
$data = <<<EOD
Nighthawk,

Top secret, uniquement vous votre lecture!

L'ennemi approche! Rendez-vous au café à 8h30,
pour votre faux passeport.

HQ
EOD;

// Chargement de la clé
$key = file_get_contents("nighthawk.pem");

// sauvez le message dans un fichier
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// chiffrez le
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array(
"To" => "nighthawk@agent.com", // keyed syntax
          
"From: HQ <hq@cia.com>", // indexed syntax
          
"Subject" => "Secret défense"))) {
    
// message chiffré : envoyez le!
    
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>