source: chapter08/openssl.xml@ 03372ae

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

loongarch: openssl: Add linux-generic64

The guess is "linux-generic32", which is too conservative for 64-bit
LoongArch CPUs. We may need to revise it when we add LA32 support.

There is also "linux64-loongarch64" but it depends on Binutils LSX
support which is not submitted for review yet.

  • Property mode set to 100644
File size: 8.1 KB
RevLine 
[e5474751]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
[6a156bab]28 to other packages, such as OpenSSH, email applications, and web browsers
[e5474751]29 (for accessing HTTPS sites). </para>
30
31 <segmentedlist>
32 <segtitle>&buildtime;</segtitle>
33 <segtitle>&diskspace;</segtitle>
34
35 <seglistitem>
[fb386e0]36 <seg>&openssl-fin-sbu;</seg>
37 <seg>&openssl-fin-du;</seg>
[e5474751]38 </seglistitem>
39 </segmentedlist>
40
41 </sect2>
42
43 <sect2 role="installation">
44 <title>Installation of OpenSSL</title>
[f1b9d9d]45<!--
[e5e442c]46 <para>First fix a problem with some advanced architectures with avx512
[0d80e532]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>
[f1b9d9d]51-->
[e5474751]52 <para>Prepare OpenSSL for compilation:</para>
53
54<screen><userinput remap="configure">./config --prefix=/usr \
55 --openssldir=/etc/ssl \
56 --libdir=lib \
[03372ae]57 linux-generic64 \
[e5474751]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>
[a751c8d]68
[ed48f326]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>
[a751c8d]76
[e5474751]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
[f82ef49]82 <para>Add the version to the documentation directory name, to be
83 consistent with other packages:</para>
[e5474751]84
[f82ef49]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>
[e5474751]90
[6df63e4]91 <note>
92 <para>
93 You should update OpenSSL when a new version which fixes vulnerabilities
[0d7dbaf]94 is announced. Since OpenSSL 3.0.0, the OpenSSL versioning scheme
95 follows the MAJOR.MINOR.PATCH format. API/ABI compatibility
[5042efcc]96 is guaranteed for the same MAJOR version number. Because LFS
[0d7dbaf]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
[6df63e4]100 <filename class="libraryfile">libssl.so</filename>
[5042efcc]101 <emphasis>when upgrading to a version with the same MAJOR version
102 number</emphasis>.
[6df63e4]103 </para>
104
[ad09ba4]105 <!-- https://bugzilla.mindrot.org/show_bug.cgi?id=3548 -->
[bbaf00d]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
[ad09ba4]110 server will refuse to start if OpenSSL
[bbaf00d]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
[6df63e4]120 <para>
121 However, any running programs linked to those libraries need to be stopped
[59fef4c]122 and restarted. Read the related entries in
123 <xref linkend='pkgmgmt-upgrade-issues'/> for details.
[6df63e4]124 </para>
125
126 </note>
127
[e5474751]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>
[68a5dcb9]143 libcrypto.so and libssl.so
[e5474751]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>
[0b0fa07]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
[e5474751]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
[8d35535]182 <command>man 1 openssl</command>
[e5474751]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
[8d35535]200 standards
[e5474751]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
[ce536f9]214 on which can be found by running <command>man 7 ssl</command>
[e5474751]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.