Fonctions OpenSSL
PHP Manual

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encryptChiffre un message S/MIME

Description

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

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 .

Liste de paramètres

infile

outfile

recipcerts

Soit un certificat X.509, soit un tableau de certificats X.509.

headers

headers est un tableau d'en-têtes qui seront ajoutés en tête de message, une fois que les données auront été chiffrées.

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.

flags

flags peut être utilisé pour spécifier des options qui affecteront le chiffrement (voir les constantes PKCS7).

cipherid

Le chiffrement peut être sélectionné avec le paramètre cipherid .

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version Description
5.0.0 Ajout du paramètre cipherid .

Exemples

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 votre lecture !

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

HQ
EOD;

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

// Sauvegarde du message dans un fichier
$fp fopen("msg.txt""w");
fwrite($fp$data);
fclose($fp);

// Chiffrons-le
if (openssl_pkcs7_encrypt("msg.txt""enc.txt"$key,
    array(
"To" => "nighthawk@example.com"// syntaxe sous forme de clé
          
"From: HQ <hq@example.com>"// syntaxe sous forme d'indexe
          
"Subject" => "Que pour vos yeux !"))) {
    
// message chiffré - envoyez-le !
    
exec(ini_get("sendmail_path") . " < enc.txt");
}
?>


Fonctions OpenSSL
PHP Manual