openssl_pkcs7_encrypt
<<<
openssl_pkcs7_sign openssl_pkcs7_verify
>>>

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.20 openssl_pkcs7_sign()Signe un message S/MIME

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

bool  openssl_pkcs7_sign ( string   infilename , string   outfilename , mixed   signcert , mixed   privkey , array   headers , int   flags , string   extracerts )

openssl_pkcs7_sign prend le contenu du fichier infilename et le signe en utilisant le certificat et la clé privée contenus dans les arguments signcert et privkey .

headers est un tableau d'en-têtes qui seront ajoutés aux données chiffrées (voir la fonction openssl_pkcs7_encrypt pour plus de détails sur le format du paramètre).

flags sert à modifier le message final. Voyez les constantes PKCS7 . Par défaut, la valeur est : PKCS7_DETACHED.

extracerts spécifie le nom du fichier contenant un ensemble de certificats supplémentaires à inclure dans la signature, qui pourront aider le destinataire à vérifier les données que vous utilisez.

Exemple avec openssl_pkcs7_sign

<?php
// le message que vous voulez signer, afin que le destinataire soit sûr qu'il
// vient bien de vous
$data = <<<EOD

Tu peux dépenser jusqu'à 10000 euros en note de frais.

Ton boss
HQ
EOD;// sauvez le message dans un fichier
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// chiffrez le
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array(
"file://mycert.pem", "mypassphrase"),
    array(
"To" => "joes@sales.com",   // syntaxe à clé
          
"From: HQ <ceo@sales.com>", // syntaxe indexée
          
"Subject" => "Secret défense")
    )) {
    
// message signed - send it!
    
exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

<< openssl_pkcs7_sign >>
openssl_pkcs7_encrypt OpenSSL openssl_pkcs7_verify