<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.7 $ -->
 <reference id="ref.openssl">
  <title>OpenSSL functions</title>
  <titleabbrev>OpenSSL</titleabbrev>
  <partintro>
   <section id="openssl.intro">
   &reftitle.intro;
    <para>
     This module uses the functions of <ulink
     url="&url.openssl;">OpenSSL</ulink> for generation and verification
     of signatures and for sealing (encrypting) and opening (decrypting)
     data. OpenSSL offers many features that this module currently doesn't
     support. Some of these may be added in the future.
    </para>
   </section>

   <section id="openssl.requirements">
    &reftitle.required;
    <para>
     In order to use the OpenSSL functions you need to install the <ulink
     url="&url.openssl;">OpenSSL</ulink> package.
     PHP-4.0.4pl1 requires OpenSSL &gt;= 0.9.6, but PHP-4.0.5 and greater
     will also work with OpenSSL &gt;= 0.9.5.
    </para>
   </section>

   &reference.openssl.configure;

   <section id="openssl.configuration">
    &reftitle.runtime;
    &no.config;
   </section>

   <section id="openssl.resources">
    &reftitle.resources;
    <para>
    </para>
   </section>

   <section id="openssl.certparams">
    <title>Key/Certificate parameters</title>
    <para>
     Quite a few of the openssl functions require a key or a certificate
     parameter. PHP 4.0.5 and earlier have to use a key or certificate
     <type>resource</type> returned by one of the openssl_get_xxx functions.
     Later versions may use one of the following methods:
     <itemizedlist>
      <listitem>
       <para>
        Certificates
        <orderedlist>
         <listitem>
          <simpara>
           An X.509 resource returned from
           <function>openssl_x509_read</function>
          </simpara>
         </listitem>
         <listitem>
          <simpara>A string having the format
           <filename>file://path/to/cert.pem</filename>; the named file must
           contain a PEM encoded certificate
          </simpara>
         </listitem>
         <listitem>
          <simpara>
           A string containing the content of a certificate, PEM encoded
          </simpara>
         </listitem>
        </orderedlist>
       </para>
      </listitem>
      
      <listitem>
       <para>
        Public/Private Keys
        <orderedlist>
         <listitem>
          <simpara>A key resource returned from
           <function>openssl_get_publickey</function> or
           <function>openssl_get_privatekey</function>
          </simpara>
         </listitem>
         <listitem>
          <simpara>For public keys only: an X.509 resource</simpara>
         </listitem>
         <listitem>
          <simpara>A string having the format
           <filename>file://path/to/file.pem</filename> - the named file must
           contain a PEM encoded certificate/private key (it may contain both)
          </simpara>
         </listitem>
         <listitem>
          <simpara>
           A string containing the content of a certificate/key, PEM encoded
          </simpara>
         </listitem>
         <listitem>
          <simpara>
           For private keys, you may also use the syntax
           <emphasis>array($key, $passphrase)</emphasis> where $key represents a
           key specified using the file:// or textual content notation above, and
           $passphrase represents a string containing the passphrase for that
           private key
          </simpara>
         </listitem>
        </orderedlist>
       </para> 
      </listitem>
     </itemizedlist>
    </para>
   </section>


   <section id="openssl.cert.verification">
   <title>Certificate Verification</title>
    <para>
     When calling a function that will verify a signature/certificate, the
     <emphasis>cainfo</emphasis> parameter is an array containing file and
     directory names that specify the locations of trusted CA files. If a
     directory is specified, then it must be a correctly formed hashed
     directory as the <command>openssl</command> command would use.
    </para>
   </section> 

   &reference.openssl.constants;


  </partintro>

&reference.openssl.functions;

</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->