xref: /freebsd/crypto/openssl/doc/man7/ossl-guide-introduction.pod (revision e7be843b4a162e68651d3911f0357ed464915629)
1*e7be843bSPierre Pronchery=pod
2*e7be843bSPierre Pronchery
3*e7be843bSPierre Pronchery=head1 NAME
4*e7be843bSPierre Pronchery
5*e7be843bSPierre Proncheryossl-guide-introduction
6*e7be843bSPierre Pronchery- OpenSSL Guide: An introduction to OpenSSL
7*e7be843bSPierre Pronchery
8*e7be843bSPierre Pronchery=head1 WHAT IS OPENSSL?
9*e7be843bSPierre Pronchery
10*e7be843bSPierre ProncheryOpenSSL is a robust, commercial-grade, full-featured toolkit for general-purpose
11*e7be843bSPierre Proncherycryptography and secure communication. Its features are made available via a
12*e7be843bSPierre Proncherycommand line application that enables users to perform various cryptography
13*e7be843bSPierre Proncheryrelated functions such as generating keys and certificates. Additionally it
14*e7be843bSPierre Proncherysupplies two libraries that application developers can use to implement
15*e7be843bSPierre Proncherycryptography based capabilities and to securely communicate across a network.
16*e7be843bSPierre ProncheryFinally, it also has a set of providers that supply implementations of a broad
17*e7be843bSPierre Proncheryset of cryptographic algorithms.
18*e7be843bSPierre Pronchery
19*e7be843bSPierre ProncheryOpenSSL is fully open source. Version 3.0 and above are distributed under the
20*e7be843bSPierre ProncheryApache v2 license.
21*e7be843bSPierre Pronchery
22*e7be843bSPierre Pronchery=head1 GETTING AND INSTALLING OPENSSL
23*e7be843bSPierre Pronchery
24*e7be843bSPierre ProncheryThe OpenSSL Project develops and distributes the source code for OpenSSL. You
25*e7be843bSPierre Proncherycan obtain that source code via the OpenSSL website
26*e7be843bSPierre Pronchery(L<https://www.openssl.org/source>).
27*e7be843bSPierre Pronchery
28*e7be843bSPierre ProncheryMany Operating Systems (notably Linux distributions) supply pre-built OpenSSL
29*e7be843bSPierre Proncherybinaries either pre-installed or available via the package management system in
30*e7be843bSPierre Proncheryuse for that OS. It is worth checking whether this applies to you before
31*e7be843bSPierre Proncheryattempting to build OpenSSL from the source code.
32*e7be843bSPierre Pronchery
33*e7be843bSPierre ProncherySome third parties also supply OpenSSL binaries (e.g. for Windows and some other
34*e7be843bSPierre Proncheryplatforms). The OpenSSL project maintains a list of these third parties at
35*e7be843bSPierre ProncheryL<https://github.com/openssl/openssl/wiki/Binaries>.
36*e7be843bSPierre Pronchery
37*e7be843bSPierre ProncheryIf you build and install OpenSSL from the source code then you should download
38*e7be843bSPierre Proncherythe appropriate files for the version that you want to use from the link given
39*e7be843bSPierre Proncheryabove. Extract the contents of the B<tar.gz> archive file that you downloaded
40*e7be843bSPierre Proncheryinto an appropriate directory. Inside that archive you will find a file named
41*e7be843bSPierre ProncheryB<INSTALL.md> which will supply detailed instructions on how to build and
42*e7be843bSPierre Proncheryinstall OpenSSL from source. Make sure you read the contents of that file
43*e7be843bSPierre Proncherycarefully in order to achieve a successful build. In the directory you will also
44*e7be843bSPierre Proncheryfind a set of B<NOTES> files that provide further platform specific information.
45*e7be843bSPierre ProncheryMake sure you carefully read the file appropriate to your platform. As well as
46*e7be843bSPierre Proncherythe platform specific B<NOTES> files there is also a B<NOTES-PERL.md> file that
47*e7be843bSPierre Proncheryprovides information about setting up Perl for use by the OpenSSL build system
48*e7be843bSPierre Proncheryacross multiple platforms.
49*e7be843bSPierre Pronchery
50*e7be843bSPierre ProncherySometimes you may want to build and install OpenSSL from source on a system
51*e7be843bSPierre Proncherywhich already has a pre-built version of OpenSSL installed on it via the
52*e7be843bSPierre ProncheryOperating System package management system (for example if you want to use a
53*e7be843bSPierre Proncherynewer version of OpenSSL than the one supplied by your Operating System). In
54*e7be843bSPierre Proncherythis case it is strongly recommended to install OpenSSL to a different location
55*e7be843bSPierre Proncherythan where the pre-built version is installed. You should B<never> replace the
56*e7be843bSPierre Proncherypre-built version with a different version as this may break your system.
57*e7be843bSPierre Pronchery
58*e7be843bSPierre Pronchery=head1 CONTENTS OF THE OPENSSL GUIDE
59*e7be843bSPierre Pronchery
60*e7be843bSPierre ProncheryThe OpenSSL Guide is a series of documentation pages (starting with this one)
61*e7be843bSPierre Proncherythat introduce some of the main concepts in OpenSSL. The guide can either be
62*e7be843bSPierre Proncheryread end-to-end in order, or alternatively you can simply skip to the parts most
63*e7be843bSPierre Proncheryapplicable to your use case. Note however that later pages may depend on and
64*e7be843bSPierre Proncheryassume knowledge from earlier pages.
65*e7be843bSPierre Pronchery
66*e7be843bSPierre ProncheryThe pages in the guide are as follows:
67*e7be843bSPierre Pronchery
68*e7be843bSPierre Pronchery=over 4
69*e7be843bSPierre Pronchery
70*e7be843bSPierre Pronchery=item L<ossl-guide-libraries-introduction(7)>: An introduction to the OpenSSL libraries
71*e7be843bSPierre Pronchery
72*e7be843bSPierre Pronchery=item L<ossl-guide-libcrypto-introduction(7)>: An introduction to libcrypto
73*e7be843bSPierre Pronchery
74*e7be843bSPierre Pronchery=item L<ossl-guide-libssl-introduction(7)>: An introduction to libssl
75*e7be843bSPierre Pronchery
76*e7be843bSPierre Pronchery=item L<ossl-guide-tls-introduction(7)>: An introduction to SSL/TLS in OpenSSL
77*e7be843bSPierre Pronchery
78*e7be843bSPierre Pronchery=item L<ossl-guide-tls-client-block(7)>: Writing a simple blocking TLS client
79*e7be843bSPierre Pronchery
80*e7be843bSPierre Pronchery=item L<ossl-guide-tls-client-non-block(7)>: Writing a simple nonblocking TLS client
81*e7be843bSPierre Pronchery
82*e7be843bSPierre Pronchery=item L<ossl-guide-tls-server-block(7)>: Writing a simple blocking TLS server
83*e7be843bSPierre Pronchery
84*e7be843bSPierre Pronchery=item L<ossl-guide-quic-introduction(7)>: An introduction to QUIC in OpenSSL
85*e7be843bSPierre Pronchery
86*e7be843bSPierre Pronchery=item L<ossl-guide-quic-client-block(7)>: Writing a simple blocking QUIC client
87*e7be843bSPierre Pronchery
88*e7be843bSPierre Pronchery=item L<ossl-guide-quic-server-block(7)>: Writing a simple blocking QUIC server
89*e7be843bSPierre Pronchery
90*e7be843bSPierre Pronchery=item L<ossl-guide-quic-multi-stream(7)>: Writing a simple multi-stream QUIC client
91*e7be843bSPierre Pronchery
92*e7be843bSPierre Pronchery=item L<ossl-guide-quic-server-non-block(7)>: Writing a simple nonblocking QUIC server
93*e7be843bSPierre Pronchery
94*e7be843bSPierre Pronchery=item L<ossl-guide-quic-client-non-block(7)>: Writing a simple nonblocking QUIC client
95*e7be843bSPierre Pronchery
96*e7be843bSPierre Pronchery=item L<ossl-guide-migration(7)>: Migrating from older OpenSSL versions
97*e7be843bSPierre Pronchery
98*e7be843bSPierre Pronchery=back
99*e7be843bSPierre Pronchery
100*e7be843bSPierre Pronchery=head1 COPYRIGHT
101*e7be843bSPierre Pronchery
102*e7be843bSPierre ProncheryCopyright 2023-2025 The OpenSSL Project Authors. All Rights Reserved.
103*e7be843bSPierre Pronchery
104*e7be843bSPierre ProncheryLicensed under the Apache License 2.0 (the "License").  You may not use
105*e7be843bSPierre Proncherythis file except in compliance with the License.  You can obtain a copy
106*e7be843bSPierre Proncheryin the file LICENSE in the source distribution or at
107*e7be843bSPierre ProncheryL<https://www.openssl.org/source/license.html>.
108*e7be843bSPierre Pronchery
109*e7be843bSPierre Pronchery=cut
110