Sommaire

OpenSSL

Introduction
Paramètres clés/certificats
Vérification de certificats
Constantes/flags PKCS7
openssl_error_string
openssl_free_key
openssl_get_privatekey
openssl_get_publickey
openssl_open
openssl_seal
openssl_sign
openssl_verify
openssl_pkcs7_decrypt
openssl_pkcs7_encrypt
openssl_pkcs7_sign
openssl_pkcs7_verify
openssl_x509_checkpurpose
openssl_x509_free
openssl_x509_parse
openssl_x509_read

6.68.15 openssl_pkcs7_sign

PHP 4 >= 4.0.6

Description

boolean openssl_pkcs7_sign(string infilename ,string outfilename ,mixed signcert ,mixed privkey ,array headers ,[long flags ],[string extracertsfilename ])

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é au 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écifi le nom du fichier contenant un ensemble de certificat supplémentaires à inclure dans la signature, qui pourront aider le destinataire à vérifier les données que vous utilisez.

Les paramètres et le type de retour de cette fonction risquent d'evoluer d'ici à la prochaine version de PHP. 

Exemple avec openssl_pkcs7_sign

<?php
// le message que vous voulez signer, afin que le destinataire soit s&ucirc;r qu'il
// vient bien de vous
$data = &lt;&lt;&lt;EOD
Tu peux d
&eacute;penser jusqu'&agrave; 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("mycert.pem", "mypassphrase"),
    array("To" =&gt; "joes@sales.com", // keyed syntax
          "From:@: HQ &lt;ceo@sales.com&gt;", // indexed syntax
          "Subject" =&gt; "Eyes only"))
{
    // message signed - send it!
    exec(ini_get("sendmail_path") . " &lt; signed.txt");
}
?>

Note

Ces constantes ont été ajoutées en PHP 4.0.6.