dams Tue Apr 3 06:22:59 2001 EDT
Modified files:
/phpdoc/fr/functions openssl.xml
Log:
Keeping up with en tree.
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énérer et
vérifier
- les signatures, ainsi que pour sceller (chiffrer) et ouvrir (déchiffrer)
- les données. Vous avez besoin de OpenSSL >= 0.9.6 pour utiliser
- ce module.
- </para>
- <para>
- OpenSSL offre de nombreuses fonctionnalités qui ne sont pas
- encore supportées par ce module. Elle seront ajoutées
ultérieurement.
- </para>
+ <sect1 id="openssl.intro">
+ <title>Introduction</title>
+ <para>
+ Cette extension utilise les fonctions de
+ <ulink url="&url.openssl;">OpenSSL</ulink> pour générer
+ et vérifier les signatures, ainsi que pour sceller (chiffrer)
+ et ouvrir (déchiffrer) les donné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 éléctroniques. Il est aussi possible de spécifier
+des
+ couples clés/certificats d'un grand nombre de cas, qui rendent
+ le code PHP plus facile à lire. Ces fonctionnalités sont disponibles
+ en développement sur CVS, et probablement avec PHP 4.0.6.
+ <emphasis>ATTENTION : cette extension est encore expérimentale!</emphasis>
+ </para>
+ <para>
+ OpenSSL offre de nombreuses fonctionnalités qui ne sont pas
+ encore supportées par ce module. Elle seront ajoutées
+ ultérieurement.
+ </para>
+ </sect1>
+ <sect1 id="openssl.certparams">
+ <title>Paramètres clés/certificats</title>
+ <para>
+ Un bon nombre de fonctions OpenSSL demandent une clé et un certificat
+ comme paramètres. PHP 4.0.5 et plus récent utilisait des
+clés ou certificats
+ sous forme de ressource, retournée par l'une des fonctions
+openssl_get_xxx().
+ Les versions ultérieures utilisent l'une des méthodes suivantes :
+ <itemizedlist>
+ <listitem>
+ <para>
+ Certificats
+ <orderedlist>
+ <listitem>
+ <simpara>
+ Une ressource X.509 retournée par
+<function>openssl_x509_read</function>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Une chaîne au format <filename>file://path/to/cert.pem</filename>;
+ Le fichier ainsi repéré doit contenir un certificat,
+encodé au
+ format PEM
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Une chaîne contenant le contenu d'un certificat, encodé au
+ format PEM.
+ </simpara>
+ </listitem>
+ </orderedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Clés publiques/privée
+ <orderedlist>
+ <listitem>
+ <simpara>
+ Une ressource clé, retournée par la fonction
+ <function>openssl_get_publickey</function> ou
+ <function>openssl_get_privatekey</function>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Pour les clés publiques seulement : une ressource
+ X.509
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Une chaîne avec le format :
+<filename>file://path/to/file.pem</filename>.
+ Le fichier doit contenir une clé privé ou un certificat,
+encodé au
+ format PEM (il peut contenir les deux).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Une chaîne contenant une clé ou un certificat
+ encodé au format PEM
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Pour les clés privées, vous pouvez aussi utiliser la syntaxe
+ <emphasis>array($key, $passphrase)</emphasis>, où $key
+représente
+ une clé spécifiée par un fichier ou une
+représentation textuelle comme
+ cité ci-dessus, et $passphrase représente une chaîne
+contenant la
+ passe-phrase de cette clé privée.
+ </simpara>
+ </listitem>
+ </orderedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </sect1>
+ <sect1 id="openssl.cert.verification">
+ <title>Vérification de certificats</title>
+ <para>
+ Lorsque vous appelez une fonction qui va vérifier une signature ou
+ un certificat, le paramètre <emphasis>cainfo</emphasis> doit être un
+ tableau contenant les noms d'un dossier et d'un fichier contenant les
+ tiers de confiance. Si un dossier est spécifié, il doit être
+correct,
+ 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écifié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êtes du message
+ signé/chiffré. Lors du déchiffrement ou la
+vérification,
+ il supprime purement et simplement ces données. Si le
+ message chiffré ou signé 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é dans les spécification de S/MIME.
+ Lorsque cette option est activée, le message ne sera
+ pas converti. Cela sert lorsque vous manipulez des données
+ binaires qui ne sont pas au format MIME.
+ </entry>
+ </row>
+ <row>
+ <entry>PKCS7_NOINTERN</entry>
+ <entry>
+ Lors de la vérification d'un message, les certificats
+ (s'il y en a) inclus dans le message sont normalement
+ utilisé pour rechercher le certificat de signature. Avec
+ cette option, seul le certificat spécifié par le
+ paramètre <parameter>extracerts</parameter> de la fonction
+ <function>openssl_pkcs7_verify</function> est utilisé.
+ Les certificats fournis peuvent toujours être utilisé,
+ avec un niveau de confiance réduit.
+ </entry>
+ </row>
+ <row>
+ <entry>PKCS7_NOVERIFY</entry>
+ <entry>
+ Ne vérifie pas les certificats des signataires d'un message
+ signé.
+ </entry>
+ </row>
+ <row>
+ <entry>PKCS7_NOCHAIN</entry>
+ <entry>
+ N'enchaine pas les vérifications des signataires de certificats.
+ C'est à 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ésactivé.
+ Cela va réduire la taille du message, mais le vérificateur
+ devra avoir une copie local du certificat du signataire
+ (passée au paramè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é, un jeu d'attributs
+ contenant l'heure de signature et l'algorithme symétrique
+ supporté, 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éfaut du paramètre
+<parameter>flags</parameter>
+ pour la fonction <function>openssl_pkcs7_sign</function>.
+ Si vous annulez cette optoin, le message sera signé de
+manière
+ opaque, ce qui resiste mieux à la traduction des relais mails
+ (certains serveur mail anciens corrompent les messages), mais
+ empêche la lecture par les client mails qui ne connaissent pas
+ S/MIME.
+ </entry>
+ </row>
+ <row>
+ <entry>PKCS7_NOSIGS</entry>
+ <entry>
+ Ne vé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îne de caractè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ère erreur de
+ la librairie OpenSSL. Les messages d'erreurs sont empilés, et
+ <function>openssl_error_string</function> doit être appelé
+plusieurs fois
+ pour afficher toutes les erreurs.
+ </para>
+ <para>
+ <emphasis>Les paramètres et le type de retour de cette fonction risquent
+ d'evoluer d'ici à la prochaine version de PHP.</emphasis>
+ </para>
+ <para>
+ <example>
+ <title>Exemple avec <function>openssl_error_string</function></title>
+ <programlisting role="php">
+<?php
+// Imaginons que vous avez appelé une fonction qui a émis une erreur
+while($msg = openssl_error_string)
+ echo $msg . "<br>";
+?>
+ </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échiffre) les données
<parameter>sealed_data</parameter> en utilisant la clé prviée
<parameter>priv_key_id</parameter> et la clé d'enveloppe
- <parameter>env_key</parameter>. La clé d'enveloppe est
+ <parameter>env_key</parameter> et remplis <parameter>open_data</parameter>
+ avec les données déchiffrées. La clé d'enveloppe est
générée lorsque les données sont
scellées, et ne peut être utilisée qu'avec
la clé privée spécifique. Reportez vous à
@@ -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é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échiffre le message S/MIME
+ contenu dans le fichier <parameter>infilename</parameter>, en utilisant le
+ certificat et la clé privée spécifiés par
+<parameter>recipcert</parameter> et
+ <parameter>recipkey</parameter>. Le message déchiffré sera
+écrit dans le
+ fichier <parameter>outfilename</parameter>.
+ </para>
+ <para>
+ <emphasis>Les paramètres et le type de retour de cette fonction risquent
+ d'evoluer d'ici à la prochaine version de PHP.</emphasis>
+ </para>
+ <para>
+ <example>
+ <title>Exemple avec <function>openssl_pkcs7_decrypt</function></title>
+ <programlisting role="php">
+<?php
+// $cert et $key contiennent vos certificats et clés privés
+// On suppose aussi que le message vous est destiné
+$infilename = "encrypted.msg"; // Le message chiffré
+$outfilename = "decrypted.msg"; // Assurez vous de bien pouvoir écrire dans ce
+fichier
+if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key))
+ echo "déchiffré!";
+else
+ echo "impossible de déchiffrer!";
+?>
+ </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 à 40-bit, de manière à ce que le message ne
+puisse
+ être lu que par le possesseur de <parameter>recipcerts</parameter>,
+ qui peut être un certificat X.509, ou un tableau de certificats X.509.
+ <parameter>headers</parameter> est un tableau d'entête qui sera
+ ajouté en tête de message, une fois que les données auront
+été
+ chiffrées. <parameter>flags</parameter> peut être utilisé
+pour spécifier
+ des options qui affecteront le chiffrement (voir les
+ <link linkend="openssl.pkcs7.flags">constantes PKCS7</link>).
+ <parameter>headers</parameter> peut être un tableau associatif, dont
+ les clés sont les noms d'entête, ou bien un tableau indexé
+dont chaque
+ ligne contient une ligne d'entête complète.
+ </para>
+ <para>
+ <emphasis>Les paramètres et le type de retour de cette fonction risquent
+ d'evoluer d'ici à la prochaine version de PHP.</emphasis>
+ </para>
+ <para>
+ <example>
+ <title>Exemple avec <function>openssl_pkcs7_encrypt</function></title>
+ <programlisting role="php">
+<?php
+// le message que vous souhaitez chiffrer et envoyer à votre agent secret
+// en mission commandée, appelé "nighthawk". Vous avez son certificat
+// dans le fichir "nighthawk.pem"
+$data = <<<EOD
+Nighthawk,
+Top secret, uniquement vous votre lecture!
+L'ennemi approche! Rendez vous au café à 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" => "[EMAIL PROTECTED]", // keyed syntax
+ "From: HQ <[EMAIL PROTECTED]>", // indexed syntax
+ "Subject" => "Eyes only")))
+{
+ // message chiffré : envoyez le!
+ exec(ini_get("sendmail_path") . " < enc.txt");
+}
+?>
+ </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é privée contenus dans les arguments
+ <parameter>signcert</parameter> et <parameter>privkey</parameter>.
+ </para>
+ <para>
+ <parameter>headers</parameter> est un tableau d'entête qui
+ sera ajouté au données chiffrées (voir la fonction
+ <function>openssl_pkcs7_encrypt</function> pour plus de détails sur
+ le format du paramètre).
+ </para>
+ <para>
+ <parameter>flags</parameter> sert à modifier le message final.
+ Voyez les <link linkend="openssl.pkcs7.flags">constantes PKCS7</link>. Par
+ défaut, la valeur est : PKCS7_DETACHED.
+ </para>
+ <para>
+ <parameter>extracerts</parameter> 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.
+ </para>
+ <para>
+ <emphasis>Les paramètres et le type de retour de cette fonction risquent
+ d'evoluer d'ici à la prochaine version de PHP.</emphasis>
+ </para>
+ <para>
+ <example>
+ <title><function>openssl_pkcs7_sign</function> example</title>
+ <programlisting role="php">
+<?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("mycert.pem", "mypassphrase"),
+ array("To" => "[EMAIL PROTECTED]", // keyed syntax
+ "From: HQ <[EMAIL PROTECTED]>", // indexed syntax
+ "Subject" => "Eyes only"))
+{
+ // message signed - send it!
+ exec(ini_get("sendmail_path") . " < signed.txt");
+}
+?>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+ </refentry>
+ <refentry id="function.openssl-pkcs7-verify">
+ <refnamediv>
+ <refname>openssl_pkcs7_verify</refname>
+ <refpurpose>Vé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érifiée, et
+<literal>FALSE</literal>
+ sinon (le message a été modifié, ou bien le certificat de
+signature est
+ invalide). <function>openssl_pkcs7_verify</function> retourne -1
+ en cas d'erreur de vérification (la vérification s'est mal
+déroulée, aucune
+ conclusion possible).
+ </para>
+ <para>
+ <parameter>flags</parameter> sert à modifier le message final.
+ Voyez les <link linkend="openssl.pkcs7.flags">constantes PKCS7</link>. Par
+ défaut, la valeur est : PKCS7_DETACHED.
+ </para>
+ <para>
+ Si le paramètre <parameter>outfilename</parameter> est
+spécifié, il doit
+ être une chaîne contenant le nom d'un fichier qui contient le
+certificat
+ du signataire, au format PEM.
+ </para>
+ <para>
+ Si le paramètre <parameter>cainfo</parameter> est spécifié,
+il doit
+ contenir les informations sur les tiers de certificats de confiance
+ utilisé lors de la vérification. Voyez
+ <link linkend="openssl.cert.verification">vérification des
+certificats</link>
+ pour plus de détails.
+ </para>
+ <para>
+ Si le paramètre <parameter>extracerts</parameter> est
+spécifié, il doit
+ représenter le nom d'un fichier contenant un ensemble de
+ certificat utilisé comme certificats de peu de confiance.
+ </para>
+ <para>
+ <emphasis>Les paramètres et le type de retour de cette fonction risquent
+ d'evoluer d'ici à la prochaine version de PHP.</emphasis>
+ </para>
+ </refsect1>
+ </refentry>
+ <refentry id="function.openssl-x509-checkpurpose">
+ <refnamediv>
+ <refname>openssl_x509_checkpurpose</refname>
+ <refpurpose>Vé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 être utilisé pour un but particulier,
+<literal>FALSE</literal>
+ s'il ne le peut pas, et -1 en cas d'erreur.
+ </para>
+ <para>
+ <function>openssl_x509_checkpurpose</function> examine le certificat
+ specifié par <parameter>x509cert</parameter>, pour voir s'il peut
+être
+ utilisé pour une opération particulière
+<parameter>purpose</parameter>.
+ </para>
+ <para>
+ <parameter>cainfo</parameter> doit être un tableau de dossiers/fichiers
+ de CA de confiance comme décrit
+ dans la
+ <link linkend="openssl.cert.verification">Vérification des
+certificats</link>.
+ </para>
+ <para>
+ <parameter>untrustedfile</parameter>, si spécifié, est le nom d'un
+ fichier au format PEM contenant les certificats qui pourront aider
+ lors de la vérification du certificat, même si une confiance
+limitée
+ doit leur être portée.
+ </para>
+ <para>
+ <emphasis>Les paramètres et le type de retour de cette fonction risquent
+ d'evoluer d'ici à 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 être utilisé avec le client d'une
+ connexion SSL?
+ </entry>
+ </row>
+ <row>
+ <entry>X509_PURPOSE_SSL_SERVER</entry>
+ <entry>
+ Est ce que le certificat peut être utilisé avec le serveur d'une
+ connexion SSL?
+ </entry>
+ </row>
+ <row>
+ <entry>X509_PURPOSE_NS_SSL_SERVER</entry>
+ <entry>
+ Est ce que le certificat peut être utilisé avec un serveur
+ Netscape d'une connexion SSL?
+ </entry>
+ </row>
+ <row>
+ <entry>X509_PURPOSE_SMIME_SIGN</entry>
+ <entry>
+ Est ce que le certificat peut être utilisé pour signer des
+ courrier à la norme S/MIME?
+ </entry>
+ </row>
+ <row>
+ <entry>X509_PURPOSE_SMIME_ENCRYPT</entry>
+ <entry>
+ Est-ce que le certificat peut être utilisé pour
+ chiffrer un courrier au format S/MIME?
+ </entry>
+ </row>
+ <row>
+ <entry>X509_PURPOSE_CRL_SIGN</entry>
+ <entry>
+ Est-ce que le certificat peut être utilisé pour
+ chiffrer une liste de revocation de certificat?
+ (CRL)?
+ </entry>
+ </row>
+ <row>
+ <entry>X509_PURPOSE_ANY</entry>
+ <entry>
+ Est-ce que le certificat peut être utilisé 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 à la fois.
+ </para>
+ </refsect1>
+ </refentry>
+ <refentry id="function.openssl-x509-free">
+ <refnamediv>
+ <refname>openssl_x509_free</refname>
+ <refpurpose>Libè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è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), émetteur (issuer name),
+ dates de début et de fin (valid from date et valid to date), etc...
+ <parameter>shortnames</parameter> contrôle l'indexation des données
+dans
+ le tableau : si <parameter>shortnames</parameter> vaut <literal>TRUE</literal>
+ (valeur par défaut), alors les champs seront indexés avec la forme
+ courte des noms, sinon, les noms longs seront utilisés.
+ (par exemple, <literal>CN</literal> est le nom court de
+ <literal>commonName</literal>).
+ </para>
+ <para>
+ <emphasis>La structure des données retournées est
+(délibérément)
+ non documentée, car elle se sujette à des changements
+probables.</emphasis>
+ </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: