cynic           Mon Feb  5 04:43:38 2001 EDT

  Added files:                 
    /phpdoc/cs/functions        openssl.xml 
  Log:
  should be completely translated
  
  

Index: phpdoc/cs/functions/openssl.xml
+++ phpdoc/cs/functions/openssl.xml
 <reference id="ref.openssl">
  <title>OpenSSL funkce</title>
  <titleabbrev>OpenSSL</titleabbrev>
  <partintro>
  <para>
   Tato extenze využívá funkce <ulink url="&url.openssl;">OpenSSL</ulink> pro
   tvorbu a ověřování podpisů a pečetění (kódování) a otvírání (dekódování) dat.
   K práci s touto extenzí potřebujete OpenSSL >= 0.9.6.
  </para>
  <para>
   OpenSSL nabízí mnoho vlastností, které tato extenze v současnosti nepodporuje.
   Některé z nich mohou být v budoucnu přidány.
  </para>
  </partintro>

  <refentry id="function.openssl-free-key">
   <refnamediv>
    <refname>openssl_free_key</refname>
    <refpurpose>Uvolnit prostředky klíče</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>void <function>openssl_free_key</function></funcdef>
      <paramdef>int <parameter>key_identifier</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     <function>openssl_free_key</function> uvolní klíč asociovaný s předaným
     <parameter>key_identifier</parameter> z paměti.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.openssl-get-privatekey">
   <refnamediv>
    <refname>openssl_get_privatekey</refname>
    <refpurpose>Připravit soukromý PEM klíč k použití</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>openssl_get_privatekey</function></funcdef>
      <paramdef>string <parameter>key</parameter></paramdef>
      <paramdef>string 
<parameter><optional>passphrase</optional></parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>Pri úspěchu vrací klíč, při chybě <literal>false</literal>.
    </para>
    <para>
     <function>openssl_get_privatekey</function> rozparsuje sourkomý PEM klíč
     <parameter>key</parameter> a připraví ho k použití v dalších funkcích.
     Volitelný argument <parameter>passphrase</parameter> musí být předán, pokud
     je tento klíč zakódován (chráněn heslem).
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.openssl-get-publickey">
   <refnamediv>
    <refname>openssl_get_publickey</refname>
    <refpurpose>
     Získat z certifikátu veřejný klíč a připravit ho k použití
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>openssl_get_publickey</function></funcdef>
      <paramdef>string <parameter>certificate</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Při úspěchu vrací identifikátor klíče, při chybě <literal>false</literal>.
    </para>
    <para>
     <function>openssl_get_publickey</function> z X.509 certifikátu
     <parameter>certificate</parameter> vyextrahuje veřejný klíč a připraví ho
     k použití v dalších funkcích.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.openssl-open">
   <refnamediv>
    <refname>openssl_open</refname>
    <refpurpose>Otevřít zapečetěná data</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>bool <function>openssl_open</function></funcdef>
      <paramdef>string <parameter>sealed_data</parameter></paramdef>
      <paramdef>string <parameter>open_data</parameter></paramdef>
      <paramdef>string <parameter>env_key</parameter></paramdef>
      <paramdef>int <parameter>priv_key_id</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Při úspěchu vrací <literal>true</literal>, při chybě <literal>false</literal>.
     Úspěšně otevřená data se umístí do argumentu <parameter>open_data</parameter>.
    </para>
    <para>
     <function>openssl_open</function> otevře (dekóduje)
     <parameter>sealed_data</parameter> pomocí soukromého klíče asociovaného s
     identifikátorem <parameter>priv_key_id</parameter> a obálkou
     <parameter>env_key</parameter>. Tato obálka se generuje při pečetění dat a
     je použitelná pouze s jedním utčitým soukromým klíčem. Více informací viz
     <function>openssl_seal</function>.
    </para>
    <para>
     <example>
      <title>Ukázka <function>openssl_open</function></title>
      <programlisting role="php">
// $sealed a $env_key obsahují zapečetěná data a obálku
// obojí nám bylo dáno tím, kdo data zapečetil

// získat ze souboru soukromý klíč a připravit ho
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// dekódovat data a uložit je v $open
if (openssl_open($sealed, $open, $env_key, $pkeyid))
    echo "tady jsou otevřená data: ", $open;
else
    echo "nepodařilo se otevřít data";

// uvolnit klíč z paměti
openssl_free_key($pkeyid);
      </programlisting>
     </example>
    </para>
    <simpara>
     Viz také <function>openssl_seal</function>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.openssl-seal">
   <refnamediv>
    <refname>openssl_seal</refname>
    <refpurpose>Zapečetit (zakódovat) data</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>openssl_seal</function></funcdef>
      <paramdef>string <parameter>data</parameter></paramdef>
      <paramdef>string <parameter>sealed_data</parameter></paramdef>
      <paramdef>array <parameter>env_keys</parameter></paramdef>
      <paramdef>array <parameter>pub_key_ids</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Při úspěchu vrací délku zapečetěných dat, při chybě <literal>false</literal>.
     Úspěšně zapečetěná data se umístí do argumentu
     <parameter>sealed_data</parameter>, a obálka do
     <parameter>env_keys</parameter>.

    </para>
    <para>
     <function>openssl_seal</function> zapečetí (zakóduje)
     <parameter>data</parameter> pomocí RC4 s náhodně generovaným tajným klíčem.
     Tento klíč se zakóduje všemi veřejnými klíči asociovanými s identifikátory
     v <parameter>pub_key_ids</parameter> a zakódované klíče se vrátí v
     <parameter>env_keys</parameter>. To znamená, že lze poslat zapečetěná data
     více příjemcům (za předpokladu, že máme jejích veřejné klíče). Každý z
     příjemců musí obdržet zapečetěná data a obálku, která byla zakódována
     jeho veřejným klíčem.
    </para>
    <para>
     <example>
      <title>Ukázka <function>openssl_seal</function></title>
      <programlisting role="php">
// $data obsahuje data určená k zapečetění

// získat veřejné klíče našich příjemců a připravit je
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// opakovat prodruhého příjemce
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// zapečetit zprávu, pouze majitelé $pk1 a $pk2 mohou dekódovat $sealed pomocí
// $ekeys[0] a $ekeys[1].
openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));

// uvolnit klíče z paměti
openssl_free_key($pk1);
openssl_free_key($pk2);
      </programlisting>
     </example>
    </para>
    <simpara>
     Viz také <function>openssl_open</function>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.openssl-sign">
   <refnamediv>
    <refname>openssl_sign</refname>
    <refpurpose>Generate signature</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>bool <function>openssl_sign</function></funcdef>
      <paramdef>string <parameter>data</parameter></paramdef>
      <paramdef>string <parameter>signature</parameter></paramdef>
      <paramdef>int <parameter>priv_key_id</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Při úspěchu vrací <literal>true</literal>, při chybě <literal>false</literal>.
     Úspěšně vytvořený podpis se umístí v <parameter>signature</parameter>.
    </para>
    <para>
     <function>openssl_sign</function> vypočítá podpis pro daná
     specified <parameter>data</parameter> pomocí SHA1 hashe a následně jej
     zakóduje soukromým klíčem asociovaným s
     <parameter>priv_key_id</parameter>. Pozn.: samotná data nejsou kódována.
    </para>
    <para>
     <example>
      <title><function>openssl_sign</function> example</title>
      <programlisting role="php">
// $data obsahuje data určená k podpisu

// získat ze souboru soukromý klíč a připravit ho
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// vytvořit podpis
openssl_sign($data, $signature, $pkeyid);

// uvolnit klíč z paměti
openssl_free_key($pkeyid);
      </programlisting>
     </example>
    </para>
    <simpara>
     Viz také <function>openssl_verify</function>.
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.openssl-verify">
   <refnamediv>
    <refname>openssl_verify</refname>
    <refpurpose>Ověřit podpis</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
    <funcsynopsis>
     <funcprototype>
      <funcdef>int <function>openssl_verify</function></funcdef>
      <paramdef>string <parameter>data</parameter></paramdef>
      <paramdef>string <parameter>signature</parameter></paramdef>
      <paramdef>int <parameter>pub_key_id</parameter></paramdef>
     </funcprototype>
    </funcsynopsis>
    <para>
     Vrací 1, pokud je podpis správný, 0, pokud je nesprávný, a -1 při chybě.
    </para>
    <para>
     <function>openssl_verify</function> ověřuje, zda je
     <parameter>signature</parameter> správný pro
     <parameter>data</parameter> pomocí veřejného klíče asociovaného s
     <parameter>pub_key_id</parameter>. Musí to být veřejný klíč odpovídající
     soukromému klíči použitému k podpisu.
    </para>
    <para>
     <example>
      <title>Ukázka <function>openssl_verify</function></title>
      <programlisting role="php">
// $data a $signature obsahují data a podpis

// získat z certifikátu veřejný klíč a připravit ho
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// zjistit, jestli je podpis v pořádku
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1)
    echo "dobře";
elseif ($ok == 0)
    echo "špatně";
else
    echo "nejhůř, při kontrole podpisu došlo k chybě";

// uvolnit klíč z paměti
openssl_free_key($pubkeyid);
      </programlisting>
     </example>
    </para>
    <simpara>
     Viz také <function>openssl_sign</function>.
    </simpara>
   </refsect1>
  </refentry>
 </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
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->

Reply via email to