<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-openssl" role="wrap">
  <?dbhtml filename="openssl.html"?>

  <sect1info condition="script">
    <productname>openssl</productname>
    <productnumber>&openssl-version;</productnumber>
    <address>&openssl-url;</address>
  </sect1info>

  <title>OpenSSL-&openssl-version;</title>

  <indexterm zone="ch-system-openssl">
    <primary sortas="a-OpenSSL">OpenSSL</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <!--para>The OpenSSL package contains  management tools and libraries relating
    to cryptography. These are useful for providing cryptographic functions
    to other packages, such as OpenSSH, email applications and web browsers
    (for accessing HTTPS sites).  </para-->
    <para>OpenSSL 软件包包含密码学相关的管理工具和库。
		它们被用于向其他软件包提供密码学功能，例如 OpenSSH，
		电子邮件程序和 Web 浏览器（访问 HTTPS 站点）。</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&openssl-ch6-sbu;</seg>
        <seg>&openssl-ch6-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>安装 OpenSSL</title>

    <para>准备安装 OpenSSL：</para>

<screen><userinput remap="configure">./config --prefix=/usr         \
         --openssldir=/etc/ssl \
         --libdir=lib          \
         shared                \
         zlib-dynamic</userinput></screen>

    <para>编译该软件包：</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>运行以下命令以测试编译结果：</para>

<screen><userinput remap="test">make test</userinput></screen>

    <para>测试 40-test_rehash.t 的一个子测试在 LFS chroot 环境中失败，
    但如果以普通用户身份运行就能通过。</para>

    <para>安装该软件包：</para>

<screen><userinput remap="install">sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
make MANSUFFIX=ssl install</userinput></screen>

    <para>如果需要的话，安装文档：</para>

<screen><userinput remap="install">mv -v /usr/share/doc/openssl /usr/share/doc/openssl-&openssl-version;
cp -vfr doc/* /usr/share/doc/openssl-&openssl-version;</userinput></screen>

  </sect2>

  <sect2 id="contents-openssl" role="content">
    <title>OpenSSL 的内容</title>

    <segmentedlist>
      <segtitle>安装的程序</segtitle>
      <segtitle>安装的库</segtitle>
      <segtitle>安装的目录</segtitle>

      <seglistitem>
        <seg>
          c_rehash 和 openssl
        </seg>
        <seg>
          libcrypto.{so,a} 和 libssl.{so,a}
        </seg>
        <seg>
          /etc/ssl,
          /usr/include/openssl,
          /usr/lib/engines 以及
          /usr/share/doc/openssl-&openssl-version;
        </seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">简要描述</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="c_rehash">
        <term><command>c_rehash</command></term>
        <listitem>
          <para>
            一个 <application>Perl</application> 脚本，
			扫描一个目录中的所有文件，并添加它们的符号链接，
			符号链接名为对应文件的散列值
          </para>
          <indexterm zone="ch-system-openssl c_rehash">
            <primary sortas="b-c_rehash">c_rehash</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="openssl-prog">
        <term><command>openssl</command></term>
        <listitem>
          <para>
			  一个命令行工具，用于从 shell 使用
			  <application>OpenSSL</application> 密码学库的一些密码学函数。
			  它可以被用于 <command>man 1 openssl</command>
			  描述的许多功能。
		  </para>
          <indexterm zone="ch-system-openssl openssl-prog">
            <primary sortas="b-openssl">openssl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libcrypto">
        <term><filename class="libraryfile">libcrypto.so</filename></term>
        <listitem>
          <para>
            实现不同 Internet 标准使用的许多密码学算法。
			该库提供的服务被 <application>OpenSSL</application> 的
			SSL TLS 和 S/MIME 实现使用，也被用于实现
			<application>OpenSSH</application>、
			<application>OpenPGP</application> 和其他密码学标准。</para>
          <indexterm zone="ch-system-openssl libcrypto">
            <primary sortas="c-libcrypto">libcrypto.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libssl">
        <term><filename class="libraryfile">libssl.so</filename></term>
        <listitem>
          <!--para>
            implements the Transport Layer Security (TLS v1) protocol.
            It provides a rich API, documentation
            on which can be found by running <command>man 3 ssl</command>.
          </para-->
		  <para>实现传输层安全 (TLS v1) 协议。
			  它提供了丰富的 API，这些 API 的文档可以通过执行
			  <command>man 3 ssl</command> 查阅。</para>
          <indexterm zone="ch-system-openssl libssl">
            <primary sortas="c-libssl">libssl.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
