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 = 0 [, int $cipherid = OPENSSL_CIPHER_RC2_40 ]] )

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

Une des constantes cipher.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

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