openssl_pkcs7_decrypt
<<<
openssl_pkcs7_encrypt openssl_pkcs7_sign
>>>

8.87 OpenSSL
8 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Paramètres clés/certificats
Vérification de certificats
Constantes pré-définies
openssl_csr_export_to_file
openssl_csr_export
openssl_csr_new
openssl_csr_sign
openssl_error_string
openssl_free_key
openssl_get_privatekey
openssl_get_publickey
openssl_open
openssl_pkcs7_decrypt
->openssl_pkcs7_encrypt
openssl_pkcs7_sign
openssl_pkcs7_verify
openssl_pkey_export_to_file
openssl_pkey_export
openssl_pkey_get_private
openssl_pkey_get_public
openssl_pkey_new
openssl_private_decrypt
openssl_private_encrypt
openssl_public_decrypt
openssl_public_encrypt
openssl_seal
openssl_sign
openssl_verify
openssl_x509_check_private_key
openssl_x509_checkpurpose
openssl_x509_export_to_file
openssl_x509_export
openssl_x509_free
openssl_x509_parse
openssl_x509_read

8.87.19 openssl_pkcs7_encrypt()Chiffre un message S/MIME

[ Exemples avec openssl_pkcs7_encrypt ]   PHP 4 >= 4.0.6, PHP 5

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 , 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és 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. Cipher peut être sélectionné avec le paramètre cipherid depuis PHP 5.

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");

// 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");
}
?>

<< openssl_pkcs7_encrypt >>
openssl_pkcs7_decrypt OpenSSL openssl_pkcs7_sign