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