source: chapter08/openssl.xml@ c8a4bac

xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1
Last change on this file since c8a4bac was c8a4bac, checked in by Xi Ruoyao <xry111@…>, 10 months ago

loongarch: openssl: Use linux64-loongarch64 target

With Binutils-2.41 we can enable the LSX accelerated AES routine.

In the future (OpenSSL-3.2) we'll be able to remove this line and let
the config script guess it automatically.

  • Property mode set to 100644
File size: 8.1 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-system-openssl" role="wrap">
9 <?dbhtml filename="openssl.html"?>
10
11 <sect1info condition="script">
12 <productname>openssl</productname>
13 <productnumber>&openssl-version;</productnumber>
14 <address>&openssl-url;</address>
15 </sect1info>
16
17 <title>OpenSSL-&openssl-version;</title>
18
19 <indexterm zone="ch-system-openssl">
20 <primary sortas="a-OpenSSL">OpenSSL</primary>
21 </indexterm>
22
23 <sect2 role="package">
24 <title/>
25
26 <para>The OpenSSL package contains management tools and libraries relating
27 to cryptography. These are useful for providing cryptographic functions
28 to other packages, such as OpenSSH, email applications, and web browsers
29 (for accessing HTTPS sites). </para>
30
31 <segmentedlist>
32 <segtitle>&buildtime;</segtitle>
33 <segtitle>&diskspace;</segtitle>
34
35 <seglistitem>
36 <seg>&openssl-fin-sbu;</seg>
37 <seg>&openssl-fin-du;</seg>
38 </seglistitem>
39 </segmentedlist>
40
41 </sect2>
42
43 <sect2 role="installation">
44 <title>Installation of OpenSSL</title>
45<!--
46 <para>First fix a problem with some advanced architectures with avx512
47 capability:</para>
48
49 <screen><userinput remap="pre">sed -e '/bn_reduce.*m1/i\ factor_size /= sizeof(BN_ULONG) * 8;' \
50 -i crypto/bn/rsaz_exp_x2.c</userinput></screen>
51-->
52 <para>Prepare OpenSSL for compilation:</para>
53
54<screen><userinput remap="configure">./config --prefix=/usr \
55 --openssldir=/etc/ssl \
56 --libdir=lib \
57 linux64-loongarch64 \
58 shared \
59 zlib-dynamic</userinput></screen>
60
61 <para>Compile the package:</para>
62
63<screen><userinput remap="make">make</userinput></screen>
64
65 <para>To test the results, issue:</para>
66
67<screen><userinput remap="test">make test</userinput></screen>
68
69 <para>One test, 30-test_afalg.t, is known to fail if the host kernel
70 does not have <option>CONFIG_CRYPTO_USER_API_SKCIPHER</option> enabled,
71 or does not have any options providing an AES with CBC implementation
72 (for example, the combination of <option>CONFIG_CRYPTO_AES</option>
73 and <option>CONFIG_CRYPTO_CBC</option>, or
74 <option>CONFIG_CRYPTO_AES_NI_INTEL</option> if the CPU supports AES-NI)
75 enabled. If it fails, it can safely be ignored.</para>
76
77 <para>Install the package:</para>
78
79<screen><userinput remap="install">sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
80make MANSUFFIX=ssl install</userinput></screen>
81
82 <para>Add the version to the documentation directory name, to be
83 consistent with other packages:</para>
84
85<screen><userinput remap="install">mv -v /usr/share/doc/openssl /usr/share/doc/openssl-&openssl-version;</userinput></screen>
86
87 <para>If desired, install some additional documentation:</para>
88
89<screen><userinput remap="install">cp -vfr doc/* /usr/share/doc/openssl-&openssl-version;</userinput></screen>
90
91 <note>
92 <para>
93 You should update OpenSSL when a new version which fixes vulnerabilities
94 is announced. Since OpenSSL 3.0.0, the OpenSSL versioning scheme
95 follows the MAJOR.MINOR.PATCH format. API/ABI compatibility
96 is guaranteed for the same MAJOR version number. Because LFS
97 installs only the shared libraries, there is no need to recompile
98 packages which link to
99 <filename class="libraryfile">libcrypto.so</filename> or
100 <filename class="libraryfile">libssl.so</filename>
101 <emphasis>when upgrading to a version with the same MAJOR version
102 number</emphasis>.
103 </para>
104
105 <!-- https://bugzilla.mindrot.org/show_bug.cgi?id=3548 -->
106 <para>
107 If <application>OpenSSH</application> is installed, it will be an
108 exception of the general rule above. It contains an
109 over-restrictive OpenSSL version check, so both SSH client and SSH
110 server will refuse to start if OpenSSL
111 is updated with MAJOR version number unchanged but MINOR version
112 number changed. You need to rebuild
113 <application>OpenSSH</application> after such an upgrade.
114 <emphasis role='bold'>If <application>OpenSSH</application> is being
115 used to access the system, you must rebuild and reinstall it
116 after upgrading OpenSSL to a new MINOR version number before logout
117 or you won't be able to login via SSH anymore.</emphasis>
118 </para>
119
120 <para>
121 However, any running programs linked to those libraries need to be stopped
122 and restarted. Read the related entries in
123 <xref linkend='pkgmgmt-upgrade-issues'/> for details.
124 </para>
125
126 </note>
127
128 </sect2>
129
130 <sect2 id="contents-openssl" role="content">
131 <title>Contents of OpenSSL</title>
132
133 <segmentedlist>
134 <segtitle>Installed programs</segtitle>
135 <segtitle>Installed libraries</segtitle>
136 <segtitle>Installed directories</segtitle>
137
138 <seglistitem>
139 <seg>
140 c_rehash and openssl
141 </seg>
142 <seg>
143 libcrypto.so and libssl.so
144 </seg>
145 <seg>
146 /etc/ssl,
147 /usr/include/openssl,
148 /usr/lib/engines and
149 /usr/share/doc/openssl-&openssl-version;
150 </seg>
151 </seglistitem>
152 </segmentedlist>
153
154 <variablelist>
155 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
156 <?dbfo list-presentation="list"?>
157 <?dbhtml list-presentation="table"?>
158
159 <varlistentry id="c_rehash">
160 <term><command>c_rehash</command></term>
161 <listitem>
162 <para>
163 is a <application>Perl</application> script that
164 scans all files in a directory and adds symbolic links to their
165 hash values. Use of <command>c_rehash</command> is considered
166 obsolete and should be replaced by
167 <command>openssl rehash</command> command
168 </para>
169 <indexterm zone="ch-system-openssl c_rehash">
170 <primary sortas="b-c_rehash">c_rehash</primary>
171 </indexterm>
172 </listitem>
173 </varlistentry>
174
175 <varlistentry id="openssl-prog">
176 <term><command>openssl</command></term>
177 <listitem>
178 <para>
179 is a command-line tool for using the various cryptography functions
180 of <application>OpenSSL</application>'s crypto library from the
181 shell. It can be used for various functions which are documented in
182 <command>man 1 openssl</command>
183 </para>
184 <indexterm zone="ch-system-openssl openssl-prog">
185 <primary sortas="b-openssl">openssl</primary>
186 </indexterm>
187 </listitem>
188 </varlistentry>
189
190 <varlistentry id="libcrypto">
191 <term><filename class="libraryfile">libcrypto.so</filename></term>
192 <listitem>
193 <para>
194 implements a wide range of cryptographic algorithms used in various
195 Internet standards. The services provided by this library are used
196 by the <application>OpenSSL</application> implementations of SSL,
197 TLS and S/MIME, and they have also been used to implement
198 <application>OpenSSH</application>,
199 <application>OpenPGP</application>, and other cryptographic
200 standards
201 </para>
202 <indexterm zone="ch-system-openssl libcrypto">
203 <primary sortas="c-libcrypto">libcrypto.so</primary>
204 </indexterm>
205 </listitem>
206 </varlistentry>
207
208 <varlistentry id="libssl">
209 <term><filename class="libraryfile">libssl.so</filename></term>
210 <listitem>
211 <para>
212 implements the Transport Layer Security (TLS v1) protocol.
213 It provides a rich API, documentation
214 on which can be found by running <command>man 7 ssl</command>
215 </para>
216 <indexterm zone="ch-system-openssl libssl">
217 <primary sortas="c-libssl">libssl.so</primary>
218 </indexterm>
219 </listitem>
220 </varlistentry>
221
222 </variablelist>
223
224 </sect2>
225
226</sect1>
Note: See TracBrowser for help on using the repository browser.