ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> phpdoc
phpdoc
[PHP-DOC] cvs: phpdoc /fr/functions openssl.xml
by Damien Seguy other posts by this author
Apr 3 2001 1:22PM messages near this date
[PHP-DOC] cvs: phpdoc /fr/functions uodbc.xml | [PHP-DOC] cvs: phpdoc /fr/pear standards.xml
This is a MIME encoded message

--dams986304179
Content-Type: text/plain

dams		Tue Apr  3 06:22:59 2001 EDT

  Modified files:              
    /phpdoc/fr/functions	openssl.xml 
  Log:
  Keeping up with en tree.
  
--dams986304179
Content-Type: text/plain
Content-Disposition: attachment; filename="dams-20010403062259.txt"

Index: phpdoc/fr/functions/openssl.xml
diff -u phpdoc/fr/functions/openssl.xml:1.4 phpdoc/fr/functions/openssl.xml:1.5
--- phpdoc/fr/functions/openssl.xml:1.4	Thu Mar 22 02:38:22 2001
+++ phpdoc/fr/functions/openssl.xml	Tue Apr  3 06:22:59 2001
@@ -2,18 +2,269 @@
   <title> OpenSSL</title>
   <titleabbrev> OpenSSL</titleabbrev>
   <partintro> 
-  <para> 
-   Cette extension utilise les fonctions de
-   <ulink url="&url.openssl;"> OpenSSL</ulink> pour g&eacute;n&eacute;rer et v&eacute;rifier
-   les signatures, ainsi que pour sceller (chiffrer) et ouvrir (d&eacute;chiffrer)
-   les donn&eacute;es. Vous avez besoin de OpenSSL > = 0.9.6 pour utiliser
-   ce module.
-  </para> 
-  <para> 
-   OpenSSL offre de nombreuses fonctionnalit&eacute;s qui ne sont pas
-   encore support&eacute;es par ce module. Elle seront ajout&eacute;es ult&eacute;rieuremen
t.
-  </para> 
+  <sect1 id="openssl.intro"> 
+  <title> Introduction</title>
+   <para> 
+    Cette extension utilise les fonctions de
+    <ulink url="&url.openssl;"> OpenSSL</ulink> pour g&eacute;n&eacute;rer
+    et v&eacute;rifier les signatures, ainsi que pour sceller (chiffrer)
+    et ouvrir (d&eacute;chiffrer) les donn&eacute;es. Vous avez besoin de
+    OpenSSL > = 0.9.5 pour utiliser ce module.
+   </para> 
+   <para> 
+    Cette extension supporte aussi la signature et le cryptage des
+    courrier &eacute;l&eacute;ctroniques. Il est aussi possible de sp&eacute;cifier des
+    couples cl&eacute;s/certificats d'un grand nombre de cas, qui rendent
+    le code PHP plus facile &agrave; lire. Ces fonctionnalit&eacute;s sont disponibles
+    en d&eacute;veloppement sur CVS, et probablement avec PHP 4.0.6.
+    <emphasis> ATTENTION : cette extension est encore exp&eacute;rimentale!</emphasis>
+   </para> 
+   <para> 
+    OpenSSL offre de nombreuses fonctionnalit&eacute;s qui ne sont pas
+    encore support&eacute;es par ce module. Elle seront ajout&eacute;es
+    ult&eacute;rieurement.
+   </para> 
+  </sect1> 
+  <sect1 id="openssl.certparams"> 
+  <title> Param&egrave;tres cl&eacute;s/certificats</title>
+   <para> 
+    Un bon nombre de fonctions OpenSSL demandent une cl&eacute; et un certificat
+    comme param&egrave;tres. PHP 4.0.5 et plus r&eacute;cent utilisait des cl&eacute;s ou c
ertificats
+    sous forme de ressource, retourn&eacute;e par l'une des fonctions openssl_get_xxx().
+    Les versions ult&eacute;rieures utilisent l'une des m&eacute;thodes suivantes :
+    <itemizedlist> 
+     <listitem> 
+      <para> 
+       Certificats
+       <orderedlist> 
+        <listitem> 
+         <simpara> 
+          Une ressource X.509 retourn&eacute;e par  <function> openssl_x509_read</function>
+         </simpara> 
+        </listitem> 
+        <listitem> 
+         <simpara> 
+          Une cha&icirc;ne au format <filename> file://path/to/cert.pem</filename>;
+          Le fichier ainsi rep&eacute;r&eacute; doit contenir un certificat, encod&eacute; 
au
+          format PEM
+         </simpara> 
+        </listitem> 
+        <listitem> 
+         <simpara> 
+          Une cha&icirc;ne contenant le contenu d'un certificat, encod&eacute; au
+          format PEM.
+         </simpara> 
+        </listitem> 
+       </orderedlist> 
+      </para> 
+     </listitem> 
+     <listitem> 
+      <para> 
+       Cl&eacute;s publiques/priv&eacute;e
+       <orderedlist> 
+        <listitem> 
+         <simpara> 
+          Une ressource cl&eacute;, retourn&eacute;e par la fonction
+          <function> openssl_get_publickey</function> ou
+          <function> openssl_get_privatekey</function>
+         </simpara> 
+        </listitem> 
+        <listitem> 
+         <simpara> 
+         Pour les cl&eacute;s publiques seulement : une ressource
+         X.509
+         </simpara> 
+        </listitem> 
+        <listitem> 
+         <simpara> 
+          Une cha&icirc;ne avec le format : <filename> file://path/to/file.pem</filename>.
+          Le fichier doit contenir une cl&eacute; priv&eacute; ou un certificat, encod&eacu
te; au
+          format PEM (il peut contenir les deux).
+         </simpara> 
+        </listitem> 
+        <listitem> 
+         <simpara> 
+          Une cha&icirc;ne contenant une cl&eacute; ou un certificat
+          encod&eacute; au format PEM
+         </simpara> 
+        </listitem> 
+        <listitem> 
+         <simpara> 
+          Pour les cl&eacute;s priv&eacute;es, vous pouvez aussi utiliser la syntaxe
+          <emphasis> array($key, $passphrase)</emphasis>, o&ugrave; $key repr&eacute;sente
+          une cl&eacute; sp&eacute;cifi&eacute;e par un fichier ou une repr&eacute;sentatio
n textuelle comme
+          cit&eacute; ci-dessus, et $passphrase repr&eacute;sente une cha&icirc;ne contenan
t la
+          passe-phrase de cette cl&eacute; priv&eacute;e.
+         </simpara> 
+        </listitem> 
+       </orderedlist> 
+      </para> 
+     </listitem> 
+    </itemizedlist> 
+   </para> 
+  </sect1> 
+  <sect1 id="openssl.cert.verification"> 
+  <title> V&eacute;rification de certificats</title>
+   <para> 
+    Lorsque vous appelez une fonction qui va v&eacute;rifier une signature ou
+    un certificat, le param&egrave;tre <emphasis> cainfo</emphasis> doit &ecirc;tre un
+    tableau contenant les noms d'un dossier et d'un fichier contenant les
+    tiers de confiance. Si un dossier est sp&eacute;cifi&eacute;, il doit &ecirc;tre correc
t,
+    car <command> openssl</command> va l'utiliser.
+   </para> 
+   </sect1> 
+   <sect1 id="openssl.pkcs7.flags"> 
+    <title> Constantes/flags PKCS7</title>
+    <para> 
+     Les fonctions S/MIME utilisent des flags qui sont sp&eacute;cifi&eacute;s par un
+     champs de bits. Les valeurs valides sont :
+     <table> 
+      <title> Constantes PKCS7</title>
+       <tgroup cols="2"> 
+        <thead> 
+         <row> 
+          <entry> Constante</entry>
+          <entry> Description</entry>
+         </row> 
+        </thead> 
+        <tbody> 
+         <row> 
+          <entry> PKCS7_TEXT</entry>
+          <entry> 
+           Ajoute le texte plein en clair dans les ent&ecirc;tes du message
+           sign&eacute;/chiffr&eacute;. Lors du d&eacute;chiffrement ou la v&eacute;rificat
ion,
+           il supprime purement et simplement ces donn&eacute;es. Si le
+           message chiffr&eacute; ou sign&eacute; n'est pas du type MIME, une erreur
+           surviendra.
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_BINARY</entry>
+          <entry> 
+           Normalement, le message est converti au format canonique
+           qui utilise effectivement des CR et LF comme fin de ligne,
+           comme demand&eacute; dans les sp&eacute;cification de S/MIME.
+           Lorsque cette option est activ&eacute;e, le message ne sera
+           pas converti. Cela sert lorsque vous manipulez des donn&eacute;es
+           binaires qui ne sont pas au format MIME.
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_NOINTERN</entry>
+          <entry> 
+           Lors de la v&eacute;rification d'un message, les certificats
+           (s'il y en a) inclus dans le message sont normalement
+           utilis&eacute; pour rechercher le certificat de signature. Avec
+           cette option, seul le certificat sp&eacute;cifi&eacute; par le
+           param&egrave;tre <parameter> extracerts</parameter> de la fonction
+           <function> openssl_pkcs7_verify</function> est utilis&eacute;.
+           Les certificats fournis peuvent toujours &ecirc;tre utilis&eacute;,
+           avec un niveau de confiance r&eacute;duit.
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_NOVERIFY</entry>
+          <entry> 
+           Ne v&eacute;rifie pas les certificats des signataires d'un message
+           sign&eacute;.
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_NOCHAIN</entry>
+          <entry> 
+           N'enchaine pas les v&eacute;rifications des signataires de certificats.
+           C'est &agrave; dire, n'utilise pas les certificats contenu dans le
+           message.
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_NOCERTS</entry>
+          <entry> 
+           Lors de la signature d'un message, le certificat du signataire
+           est normalement inclus. Avec cette option, c'est d&eacute;sactiv&eacute;.
+           Cela va r&eacute;duire la taille du message, mais le v&eacute;rificateur
+           devra avoir une copie local du certificat du signataire
+           (pass&eacute;e au param&egrave;tre <parameter> extracerts</parameter>, avec
+           la fonction <function> openssl_pkcs7_verify</function>).
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_NOATTR</entry>
+          <entry> 
+           Normalement, lorsqu'un message est sign&eacute;, un jeu d'attributs
+           contenant l'heure de signature et l'algorithme sym&eacute;trique
+           support&eacute;, est inclus dans le message. Avec cette option,
+           il n'est pas inclus.
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_DETACHED</entry>
+          <entry> 
+           Lors de la signature d'un message, utilise la signature
+           en texte claire, avec le type MIME "multipart/signed".
+           C'est la valeur par d&eacute;faut du param&egrave;tre <parameter> flags</paramete
r> 
+           pour la fonction <function> openssl_pkcs7_sign</function>.
+           Si vous annulez cette optoin, le message sera sign&eacute; de mani&egrave;re
+           opaque, ce qui resiste mieux &agrave; la traduction des relais mails
+           (certains serveur mail anciens corrompent les messages), mais
+           emp&ecirc;che la lecture par les client mails qui ne connaissent pas
+           S/MIME.
+          </entry> 
+         </row> 
+         <row> 
+          <entry> PKCS7_NOSIGS</entry>
+          <entry> 
+           Ne v&eacute;rifie pas les signatures d'une message
+          </entry> 
+         </row> 
+        </tbody> 
+       </tgroup> 
+      </table> 
+    </para> 
+  </sect1> 
   </partintro> 
+  <refentry id="function.openssl-error-string"> 
+   <refnamediv> 
+    <refname> openssl_error_string</refname>
+    <refpurpose> Retourne le message d'erreur OpenSSL</refpurpose>
+   </refnamediv> 
+   <refsect1> 
+    <title> Description</title>
+    <funcsynopsis> 
+     <funcprototype> 
+      <funcdef> mixed <function>openssl_error_string</function></funcdef>
+      <paramdef> void<parameter></parameter></paramdef>
+     </funcprototype> 
+    </funcsynopsis> 
+    <para> 
+     <function> openssl_error_string</function> retourne un message d'erreur,
+     sous forme de cha&icirc;ne de caract&egrave;res, ou <literal> FALSE</literal> s'il n'y 
a
+     pas de message d'erreur.
+    </para> 
+    <para> 
+     <function> openssl_error_string</function> retourne la derni&egrave;re erreur de
+     la librairie OpenSSL. Les messages d'erreurs sont empil&eacute;s, et
+     <function> openssl_error_string</function> doit &ecirc;tre appel&eacute; plusieurs fois
+     pour afficher toutes les erreurs.
+    </para> 
+    <para> 
+     <emphasis> Les param&egrave;tres et le type de retour de cette fonction risquent
+     d'evoluer d'ici &agrave; la prochaine version de PHP.</emphasis> 
+    </para> 
+    <para> 
+     <example> 
+      <title> Exemple avec <function>openssl_error_string</function></title>
+      <programlisting role="php"> 
+&lt;?php
+// Imaginons que vous avez appel&eacute; une fonction qui a &eacute;mis une erreur
+while($msg = openssl_error_string)
+    echo $msg . "&lt;br&gt;";
+?&gt;
+      </programlisting> 
+     </example> 
+    </para> 
+   </refsect1> 
+  </refentry> 
   <refentry id="function.openssl-free-key"> 
    <refnamediv> 
     <refname> openssl_free_key</refname>
@@ -43,7 +294,7 @@
     <funcsynopsis> 
      <funcprototype> 
       <funcdef> resource <function>openssl_get_privatekey</function></funcdef>
-      <paramdef> string <parameter>key</parameter></paramdef>
+      <paramdef> mixed <parameter>key</parameter></paramdef>
       <paramdef> string <parameter><optional>passphrase</optional></parameter></paramdef>
      </funcprototype> 
     </funcsynopsis> 
@@ -70,7 +321,7 @@
     <funcsynopsis> 
      <funcprototype> 
       <funcdef> resource <function>openssl_get_publickey</function></funcdef>
-      <paramdef> string <parameter>certificate</parameter></paramdef>
+      <paramdef> mixed <parameter>certificate</parameter></paramdef>
      </funcprototype> 
     </funcsynopsis> 
     <para> 
@@ -97,7 +348,7 @@
       <paramdef> string <parameter>sealed_data</parameter></paramdef>
       <paramdef> string <parameter>open_data</parameter></paramdef>
       <paramdef> string <parameter>env_key</parameter></paramdef>
-      <paramdef> resource <parameter>priv_key_id</parameter></paramdef>
+      <paramdef> mixed <parameter>priv_key_id</parameter></paramdef>
      </funcprototype> 
     </funcsynopsis> 
     <para> 
@@ -110,7 +361,8 @@
      <function> openssl_open</function> ouvre (d&eacute;chiffre) les donn&eacute;es
      <parameter> sealed_data</parameter> en utilisant la cl&eacute; prvi&eacute;e
      <parameter> priv_key_id</parameter> et la cl&eacute; d'enveloppe
-     <parameter> env_key</parameter>. La cl&eacute; d'enveloppe est
+     <parameter> env_key</parameter> et remplis <parameter>open_data</parameter>
+     avec les donn&eacute;es d&eacute;chiffr&eacute;es. La cl&eacute; d'enveloppe est
      g&eacute;n&eacute;r&eacute;e lorsque les donn&eacute;es sont
      scell&eacute;es, et ne peut &ecirc;tre utilis&eacute;e qu'avec
      la cl&eacute; priv&eacute;e sp&eacute;cifique. Reportez vous &agrave;
@@ -225,7 +477,7 @@
       <funcdef> bool <function>openssl_sign</function></funcdef>
       <paramdef> string <parameter>data</parameter></paramdef>
       <paramdef> string <parameter>signature</parameter></paramdef>
-      <paramdef> resource <parameter>priv_key_id</parameter></paramdef>
+      <paramdef> mixed <parameter>priv_key_id</parameter></paramdef>
      </funcprototype> 
     </funcsynopsis> 
     <para> 
@@ -323,6 +575,440 @@
     </simpara> 
    </refsect1> 
   </refentry> 
+  <refentry id="function.openssl-pkcs7-decrypt"> 
+   <refnamediv> 
+    <refname> openssl_pkcs7_decrypt</refname>
+    <refpurpose> D&eacute;chiffre un message S/MIME</refpurpose>
+   </refnamediv> 
+   <refsect1> 
+    <title> Description</title>
+    <funcsynopsis> 
+     <funcprototype> 
+      <funcdef> bool <function>openssl_pkcs7_decrypt</function></funcdef>
+      <paramdef> string <parameter>infilename</parameter></paramdef>
+      <paramdef> string <parameter>outfilename</parameter></paramdef>
+      <paramdef> mixed <parameter>recipcert</parameter></paramdef>
+      <paramdef> mixed <parameter>recipkey</parameter></paramdef>
+     </funcprototype> 
+    </funcsynopsis> 
+    <para> 
+     <function> openssl_pkcs7_decrypt</function> d&eacute;chiffre le message S/MIME
+     contenu dans le fichier <parameter> infilename</parameter>, en utilisant le
+     certificat et la cl&eacute; priv&eacute;e sp&eacute;cifi&eacute;s par <parameter> recip
cert</parameter>  et
+     <parameter> recipkey</parameter>. Le message d&eacute;chiffr&eacute; sera &eacute;crit 
dans le
+     fichier <parameter> outfilename</parameter>.
+    </para> 
+    <para> 
+     <emphasis> Les param&egrave;tres et le type de retour de cette fonction risquent
+     d'evoluer d'ici &agrave; la prochaine version de PHP.</emphasis> 
+    </para> 
+    <para> 
+     <example> 
+      <title> Exemple avec <function>openssl_pkcs7_decrypt</function></title>
+      <programlisting role="php"> 
+&lt;?php
+// $cert et $key contiennent vos certificats et cl&eacute;s priv&eacute;s
+// On suppose aussi que le message vous est destin&eacute;
+$infilename = "encrypted.msg";  // Le message chiffr&eacute;
+$outfilename = "decrypted.msg"; // Assurez vous de bien pouvoir &eacute;crire dans ce fichi
er
+if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key))
+    echo "d&eacute;chiffr&eacute;!";
+else
+    echo "impossible de d&eacute;chiffrer!";
+?&gt;
+      </programlisting> 
+     </example> 
+    </para> 
+   </refsect1> 
+  </refentry> 
+  <refentry id="function.openssl-pkcs7-encrypt"> 
+   <refnamediv> 
+    <refname> openssl_pkcs7_encrypt</refname>
+    <refpurpose> Chiffre un message S/MIME</refpurpose>
+   </refnamediv> 
+   <refsect1> 
+    <title> Description</title>
+    <funcsynopsis> 
+     <funcprototype> 
+      <funcdef> bool <function>openssl_pkcs7_encrypt</function></funcdef>
+      <paramdef> string <parameter>infilename</parameter></paramdef>
+      <paramdef> string <parameter>outfilename</parameter></paramdef>
+      <paramdef> mixed <parameter>recipcerts</parameter></paramdef>
+      <paramdef> array <parameter>headers</parameter></paramdef>
+      <paramdef> long <parameter><optional>flags</optional></parameter></paramdef>
+     </funcprototype> 
+    </funcsynopsis> 
+    <para> 
+     <function> openssl_pkcs7_encrypt</function> prend le contenu du fichier
+     <parameter> infilename</parameter> et le chiffre en utilisant un
+     chiffrement RC2 &agrave; 40-bit, de mani&egrave;re &agrave; ce que le message ne puiss
e
+     &ecirc;tre lu que par le possesseur de <parameter> recipcerts</parameter>,
+     qui peut &ecirc;tre un certificat X.509, ou un tableau de certificats X.509.
+     <parameter> headers</parameter> est un tableau d'ent&ecirc;te qui sera
+     ajout&eacute; en t&ecirc;te de message, une fois que les donn&eacute;es auront &eacute
;t&eacute;
+     chiffr&eacute;es. <parameter> flags</parameter> peut &ecirc;tre utilis&eacute; pour sp&
eacute;cifier
+     des options qui affecteront le chiffrement (voir les
+     <link linkend="openssl.pkcs7.flags"> constantes PKCS7</link>).
+     <parameter> headers</parameter> peut &ecirc;tre un tableau associatif, dont
+     les cl&eacute;s sont les noms d'ent&ecirc;te, ou bien un tableau index&eacute; dont ch
aque
+     ligne contient une ligne d'ent&ecirc;te compl&egrave;te.
+    </para> 
+    <para> 
+     <emphasis> Les param&egrave;tres et le type de retour de cette fonction risquent
+     d'evoluer d'ici &agrave; la prochaine version de PHP.</emphasis> 
+    </para> 
+    <para> 
+     <example> 
+      <title> Exemple avec <function>openssl_pkcs7_encrypt</function></title>
+      <programlisting role="php"> 
+&lt;?php
+// le message que vous souhaitez chiffrer et envoyer &agrave; votre agent secret
+// en mission command&eacute;e, appel&eacute; "nighthawk". Vous avez son certificat
+// dans le fichir "nighthawk.pem"
+$data = &lt;&lt;&lt;EOD
+Nighthawk,
+Top secret, uniquement vous votre lecture!
+L'ennemi approche! Rendez vous au caf&eacute; &agrave; 8h30,
+pour votre faux passeport.
+HQ
+EOD;
+// 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", "nighthawk.pem",
+    array("To" =&gt; "nighthawk@agent.com", // keyed syntax
+          "From: HQ &lt;hq@cia.com&gt;", // indexed syntax
+          "Subject" =&gt; "Eyes only")))
+{
+    // message chiffr&eacute; : envoyez le!
+    exec(ini_get("sendmail_path") . " &lt; enc.txt");
+}
+?&gt;
+      </programlisting> 
+     </example> 
+    </para> 
+   </refsect1> 
+  </refentry> 
+ <refentry id="function.openssl-pkcs7-sign"> 
+  <refnamediv> 
+   <refname> openssl_pkcs7_sign</refname>
+   <refpurpose> signe un message S/MIME</refpurpose>
+  </refnamediv> 
+  <refsect1> 
+   <title> Description</title>
+   <funcsynopsis> 
+    <funcprototype> 
+     <funcdef> bool <function>openssl_pkcs7_sign</function></funcdef>
+     <paramdef> string <parameter>infilename</parameter></paramdef>
+     <paramdef> string <parameter>outfilename</parameter></paramdef>
+     <paramdef> mixed <parameter>signcert</parameter></paramdef>
+     <paramdef> mixed <parameter>privkey</parameter></paramdef>
+     <paramdef> array <parameter>headers</parameter></paramdef>
+     <paramdef> long
+     <parameter> <optional>flags</optional></parameter></paramdef>
+     <paramdef> string
+     <parameter> <optional>extracertsfilename</optional></parameter></paramdef>
+    </funcprototype> 
+   </funcsynopsis> 
+   <para> 
+    <function> openssl_pkcs7_sign</function> prend le contenu du fichier
+    <parameter> infilename</parameter> et le signe en utilisant le
+    certificat et la cl&eacute; priv&eacute;e contenus dans les arguments
+    <parameter> signcert</parameter> et <parameter>privkey</parameter>.
+   </para> 
+   <para> 
+    <parameter> headers</parameter> est un tableau d'ent&ecirc;te qui
+    sera ajout&eacute; au donn&eacute;es chiffr&eacute;es (voir la fonction
+    <function> openssl_pkcs7_encrypt</function> pour plus de d&eacute;tails sur
+    le format du param&egrave;tre).
+   </para> 
+   <para> 
+    <parameter> flags</parameter> sert &agrave; modifier le message final.
+    Voyez les <link linkend="openssl.pkcs7.flags"> constantes PKCS7</link>. Par
+    d&eacute;faut, la valeur est : PKCS7_DETACHED.
+   </para> 
+   <para> 
+    <parameter> extracerts</parameter> sp&eacute;cifi le nom du fichier contenant
+    un ensemble de certificat suppl&eacute;mentaires &agrave; inclure dans la
+    signature, qui pourront aider le destinataire &agrave; v&eacute;rifier les
+    donn&eacute;es que vous utilisez.
+   </para> 
+    <para> 
+     <emphasis> Les param&egrave;tres et le type de retour de cette fonction risquent
+     d'evoluer d'ici &agrave; la prochaine version de PHP.</emphasis> 
+    </para> 
+    <para> 
+     <example> 
+      <title> <function>openssl_pkcs7_sign</function> example</title>
+      <programlisting role="php"> 
+&lt;?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");
+}
+?&gt;
+      </programlisting> 
+     </example> 
+    </para> 
+  </refsect1> 
+ </refentry> 
+ <refentry id="function.openssl-pkcs7-verify"> 
+  <refnamediv> 
+   <refname> openssl_pkcs7_verify</refname>
+   <refpurpose> V&eacute;rifie la signature d'un message S/MIME</refpurpose>
+  </refnamediv> 
+  <refsect1> 
+   <title> Description</title>
+   <funcsynopsis> 
+    <funcprototype> 
+     <funcdef> bool <function>openssl_pkcs7_verify</function></funcdef>
+     <paramdef> string <parameter>filename</parameter></paramdef>
+     <paramdef> int <parameter>flags</parameter></paramdef>
+     <paramdef> string <parameter><optional>outfilename</optional></parameter></paramdef>
+     <paramdef> array <parameter><optional>cainfo</optional></parameter></paramdef>
+     <paramdef> string <parameter><optional>extracerts</optional></parameter></paramdef>
+    </funcprototype> 
+   </funcsynopsis> 
+   <para> 
+    <function> openssl_pkcs7_verify</function> lit le message S/MIME contenu
+    dans le fichier <parameter> filename</parameter> et examine la signature
+    digitale. <function> openssl_pkcs7_verify</function> retourne
+    <literal> TRUE</literal> si la signature est v&eacute;rifi&eacute;e, et <literal>FALSE</
literal> 
+    sinon (le message a &eacute;t&eacute; modifi&eacute;, ou bien le certificat de signatur
e est
+    invalide). <function> openssl_pkcs7_verify</function> retourne -1
+    en cas d'erreur de v&eacute;rification (la v&eacute;rification s'est mal d&eacute;roul&
eacute;e, aucune
+    conclusion possible).
+   </para> 
+   <para> 
+    <parameter> flags</parameter> sert &agrave; modifier le message final.
+    Voyez les <link linkend="openssl.pkcs7.flags"> constantes PKCS7</link>. Par
+    d&eacute;faut, la valeur est : PKCS7_DETACHED.
+   </para> 
+   <para> 
+    Si le param&egrave;tre <parameter> outfilename</parameter> est sp&eacute;cifi&eacute;, i
l doit
+    &ecirc;tre une cha&icirc;ne contenant le nom d'un fichier qui contient le certificat
+    du signataire, au format PEM.
+   </para> 
+   <para> 
+    Si le param&egrave;tre <parameter> cainfo</parameter> est sp&eacute;cifi&eacute;, il doi
t
+    contenir les informations sur les tiers de certificats de confiance
+    utilis&eacute; lors de la v&eacute;rification. Voyez
+    <link linkend="openssl.cert.verification"> v&eacute;rification des certificats</link>
+    pour plus de d&eacute;tails.
+   </para> 
+   <para> 
+    Si le param&egrave;tre <parameter> extracerts</parameter> est sp&eacute;cifi&eacute;, il
 doit
+    repr&eacute;senter le nom d'un fichier contenant un ensemble de
+    certificat utilis&eacute; comme certificats de peu de confiance.
+   </para> 
+    <para> 
+     <emphasis> Les param&egrave;tres et le type de retour de cette fonction risquent
+     d'evoluer d'ici &agrave; la prochaine version de PHP.</emphasis> 
+    </para> 
+  </refsect1> 
+ </refentry> 
+ <refentry id="function.openssl-x509-checkpurpose"> 
+  <refnamediv> 
+   <refname> openssl_x509_checkpurpose</refname>
+   <refpurpose> V&eacute;rifie l'usage d'un certificat</refpurpose>
+  </refnamediv> 
+  <refsect1> 
+   <title> Description</title>
+   <funcsynopsis> 
+    <funcprototype> 
+     <funcdef> bool <function>openssl_x509_checkpurpose</function></funcdef>
+     <paramdef> mixed <parameter>x509cert</parameter></paramdef>
+     <paramdef> int <parameter>purpose</parameter></paramdef>
+     <paramdef> array <parameter>cainfo</parameter></paramdef>
+     <paramdef> string
+     <parameter> <optional>untrustedfile</optional></parameter></paramdef>
+    </funcprototype> 
+   </funcsynopsis> 
+   <para> 
+    <function> openssl_x509_checkpurpose</function> <literal>TRUE</literal> si le
+    certificat peut &ecirc;tre utilis&eacute; pour un but particulier, <literal> FALSE</lite
ral> 
+    s'il ne le peut pas, et -1 en cas d'erreur.
+   </para> 
+   <para> 
+    <function> openssl_x509_checkpurpose</function> examine le certificat
+    specifi&eacute; par <parameter> x509cert</parameter>, pour voir s'il peut &ecirc;tre
+    utilis&eacute; pour une op&eacute;ration particuli&egrave;re <parameter> purpose</parame
ter> .
+   </para> 
+   <para> 
+    <parameter> cainfo</parameter> doit &ecirc;tre un tableau de dossiers/fichiers
+    de CA de confiance comme d&eacute;crit
+    dans la
+    <link linkend="openssl.cert.verification"> V&eacute;rification des certificats</link>.
+   </para> 
+   <para> 
+    <parameter> untrustedfile</parameter>, si sp&eacute;cifi&eacute;, est le nom d'un
+    fichier au format PEM contenant les certificats qui pourront aider
+    lors de la v&eacute;rification du certificat, m&ecirc;me si une confiance limit&eacute;
e
+    doit leur &ecirc;tre port&eacute;e.
+   </para> 
+    <para> 
+     <emphasis> Les param&egrave;tres et le type de retour de cette fonction risquent
+     d'evoluer d'ici &agrave; la prochaine version de PHP.</emphasis> 
+    </para> 
+   <para> 
+    <table> 
+     <title> Utilisations de <function>openssl_x509_checkpurpose</function></title>
+     <tgroup cols="2"> 
+      <thead> 
+       <row> 
+        <entry> Constante</entry>
+        <entry> Description</entry>
+       </row> 
+      </thead> 
+      <tbody> 
+       <row> 
+        <entry> X509_PURPOSE_SSL_CLIENT</entry>
+        <entry> 
+         Est ce que le certificat peut &ecirc;tre utilis&eacute; avec le client d'une
+         connexion SSL?
+        </entry> 
+       </row> 
+       <row> 
+        <entry> X509_PURPOSE_SSL_SERVER</entry>
+        <entry> 
+         Est ce que le certificat peut &ecirc;tre utilis&eacute; avec le serveur d'une
+         connexion SSL?
+        </entry> 
+       </row> 
+       <row> 
+        <entry> X509_PURPOSE_NS_SSL_SERVER</entry>
+        <entry> 
+         Est ce que le certificat peut &ecirc;tre utilis&eacute; avec un serveur
+         Netscape d'une connexion SSL?
+        </entry> 
+       </row> 
+       <row> 
+        <entry> X509_PURPOSE_SMIME_SIGN</entry>
+        <entry> 
+         Est ce que le certificat peut &ecirc;tre utilis&eacute; pour signer des
+         courrier &agrave; la norme S/MIME?
+        </entry> 
+       </row> 
+       <row> 
+        <entry> X509_PURPOSE_SMIME_ENCRYPT</entry>
+        <entry> 
+         Est-ce que le certificat peut &ecirc;tre utilis&eacute; pour
+         chiffrer un courrier au format S/MIME?
+        </entry> 
+       </row> 
+       <row> 
+        <entry> X509_PURPOSE_CRL_SIGN</entry>
+        <entry> 
+         Est-ce que le certificat peut &ecirc;tre utilis&eacute; pour
+         chiffrer une liste de revocation de certificat?
+         (CRL)?
+        </entry> 
+       </row> 
+       <row> 
+        <entry> X509_PURPOSE_ANY</entry>
+        <entry> 
+         Est-ce que le certificat peut &ecirc;tre utilis&eacute; pour
+         n'importe lequel de ces cas?
+        </entry> 
+       </row> 
+      </tbody> 
+     </tgroup> 
+    </table> 
+    Ces options ne sont pas des champs de bits :  vous ne pouvez en
+    passer qu'une seule &agrave; la fois.
+   </para> 
+  </refsect1> 
+ </refentry> 
+ <refentry id="function.openssl-x509-free"> 
+  <refnamediv> 
+   <refname> openssl_x509_free</refname>
+   <refpurpose> Lib&egrave;re les ressources prises par un certificat</refpurpose>
+  </refnamediv> 
+  <refsect1> 
+   <title> Description</title>
+   <funcsynopsis> 
+    <funcprototype> 
+     <funcdef> void <function>openssl_x509_free</function></funcdef>
+     <paramdef> resource <parameter>x509cert</parameter></paramdef>
+    </funcprototype> 
+   </funcsynopsis> 
+   <para> 
+    <function> openssl_x509_free</function> lib&egrave;re les ressources prises
+    par le certificat <parameter> x509cert</parameter>
+   </para> 
+  </refsect1> 
+ </refentry> 
+ <refentry id="function.openssl-x509-parse"> 
+  <refnamediv> 
+   <refname> openssl_x509_parse</refname>
+   <refpurpose> Analyse un certificat X509.</refpurpose>
+  </refnamediv> 
+  <refsect1> 
+   <title> Description</title>
+   <funcsynopsis> 
+    <funcprototype> 
+     <funcdef> array <function>openssl_x509_parse</function></funcdef>
+     <paramdef> mixed <parameter>x509cert</parameter></paramdef>
+     <paramdef> bool
+     <parameter> <optional>shortnames</optional></parameter></paramdef>
+    </funcprototype> 
+   </funcsynopsis> 
+   <para> 
+    <function> openssl_x509_parse</function> analyse le certificat X509
+    <parameter> x509cert</parameter>, et retourne les informations contenues
+    dedans, y compris le sujet (subject), nom (name), &eacute;metteur (issuer name),
+    dates de d&eacute;but et de fin (valid from date et valid to date), etc...
+    <parameter> shortnames</parameter> contr&ocirc;le l'indexation des donn&eacute;es dans
+    le tableau : si <parameter> shortnames</parameter> vaut <literal>TRUE</literal>
+    (valeur par d&eacute;faut), alors les champs seront index&eacute;s avec la forme
+    courte des noms, sinon, les noms longs seront utilis&eacute;s.
+    (par exemple, <literal> CN</literal> est le nom court de
+    <literal> commonName</literal>).
+   </para> 
+   <para> 
+    <emphasis> La structure des donn&eacute;es retourn&eacute;es est (d&eacute;lib&eacute;r&
eacute;ment)
+    non document&eacute;e, car elle se sujette &agrave; des changements probables.</emphasi
s> 
+   </para> 
+  </refsect1> 
+ </refentry> 
+ <refentry id="function.openssl-x509-read"> 
+  <refnamediv> 
+   <refname> openssl_x509_read</refname>
+   <refpurpose> Analyse un certificat X.509 et retourne une ressource</refpurpose>
+  </refnamediv> 
+  <refsect1> 
+   <title> Description</title>
+   <funcsynopsis> 
+    <funcprototype> 
+     <funcdef> resource <function>openssl_x509_read</function></funcdef>
+     <paramdef> mixed <parameter>x509certdata</parameter></paramdef>
+    </funcprototype> 
+   </funcsynopsis> 
+   <para> 
+    <function> openssl_x509_read</function> analyse le certificat
+    <parameter> x509certdata</parameter> et retourne un identifiant de ressource.
+   </para> 
+  </refsect1> 
+ </refentry> 
  </reference> 
 <!-- Keep this comment at the end of the file
 Local variables:

--dams986304179--
Attachments:
unknown1


Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved