xref: /freebsd/crypto/openssl/README.md (revision e0c4386e)
1b077aed3SPierre ProncheryWelcome to the OpenSSL Project
2b077aed3SPierre Pronchery==============================
3b077aed3SPierre Pronchery
4b077aed3SPierre Pronchery[![openssl logo]][www.openssl.org]
5b077aed3SPierre Pronchery
6b077aed3SPierre Pronchery[![github actions ci badge]][github actions ci]
7b077aed3SPierre Pronchery[![appveyor badge]][appveyor jobs]
8b077aed3SPierre Pronchery
9b077aed3SPierre ProncheryOpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit
10b077aed3SPierre Proncheryfor the Transport Layer Security (TLS) protocol formerly known as the
11b077aed3SPierre ProncherySecure Sockets Layer (SSL) protocol. The protocol implementation is based
12b077aed3SPierre Proncheryon a full-strength general purpose cryptographic library, which can also
13b077aed3SPierre Proncherybe used stand-alone.
14b077aed3SPierre Pronchery
15b077aed3SPierre ProncheryOpenSSL is descended from the SSLeay library developed by Eric A. Young
16b077aed3SPierre Proncheryand Tim J. Hudson.
17b077aed3SPierre Pronchery
18b077aed3SPierre ProncheryThe official Home Page of the OpenSSL Project is [www.openssl.org].
19b077aed3SPierre Pronchery
20b077aed3SPierre ProncheryTable of Contents
21b077aed3SPierre Pronchery=================
22b077aed3SPierre Pronchery
23b077aed3SPierre Pronchery - [Overview](#overview)
24b077aed3SPierre Pronchery - [Download](#download)
25b077aed3SPierre Pronchery - [Build and Install](#build-and-install)
26b077aed3SPierre Pronchery - [Documentation](#documentation)
27b077aed3SPierre Pronchery - [License](#license)
28b077aed3SPierre Pronchery - [Support](#support)
29b077aed3SPierre Pronchery - [Contributing](#contributing)
30b077aed3SPierre Pronchery - [Legalities](#legalities)
31b077aed3SPierre Pronchery
32b077aed3SPierre ProncheryOverview
33b077aed3SPierre Pronchery========
34b077aed3SPierre Pronchery
35b077aed3SPierre ProncheryThe OpenSSL toolkit includes:
36b077aed3SPierre Pronchery
37b077aed3SPierre Pronchery- **libssl**
38b077aed3SPierre Pronchery  an implementation of all TLS protocol versions up to TLSv1.3 ([RFC 8446]).
39b077aed3SPierre Pronchery
40b077aed3SPierre Pronchery- **libcrypto**
41b077aed3SPierre Pronchery  a full-strength general purpose cryptographic library. It constitutes the
42b077aed3SPierre Pronchery  basis of the TLS implementation, but can also be used independently.
43b077aed3SPierre Pronchery
44b077aed3SPierre Pronchery- **openssl**
45b077aed3SPierre Pronchery  the OpenSSL command line tool, a swiss army knife for cryptographic tasks,
46b077aed3SPierre Pronchery  testing and analyzing. It can be used for
47b077aed3SPierre Pronchery  - creation of key parameters
48b077aed3SPierre Pronchery  - creation of X.509 certificates, CSRs and CRLs
49b077aed3SPierre Pronchery  - calculation of message digests
50b077aed3SPierre Pronchery  - encryption and decryption
51b077aed3SPierre Pronchery  - SSL/TLS client and server tests
52b077aed3SPierre Pronchery  - handling of S/MIME signed or encrypted mail
53b077aed3SPierre Pronchery  - and more...
54b077aed3SPierre Pronchery
55b077aed3SPierre ProncheryDownload
56b077aed3SPierre Pronchery========
57b077aed3SPierre Pronchery
58b077aed3SPierre ProncheryFor Production Use
59b077aed3SPierre Pronchery------------------
60b077aed3SPierre Pronchery
61b077aed3SPierre ProncherySource code tarballs of the official releases can be downloaded from
62b077aed3SPierre Pronchery[www.openssl.org/source](https://www.openssl.org/source).
63b077aed3SPierre ProncheryThe OpenSSL project does not distribute the toolkit in binary form.
64b077aed3SPierre Pronchery
65b077aed3SPierre ProncheryHowever, for a large variety of operating systems precompiled versions
66b077aed3SPierre Proncheryof the OpenSSL toolkit are available. In particular on Linux and other
67b077aed3SPierre ProncheryUnix operating systems it is normally recommended to link against the
68b077aed3SPierre Proncheryprecompiled shared libraries provided by the distributor or vendor.
69b077aed3SPierre Pronchery
70b077aed3SPierre ProncheryFor Testing and Development
71b077aed3SPierre Pronchery---------------------------
72b077aed3SPierre Pronchery
73b077aed3SPierre ProncheryAlthough testing and development could in theory also be done using
74b077aed3SPierre Proncherythe source tarballs, having a local copy of the git repository with
75b077aed3SPierre Proncherythe entire project history gives you much more insight into the
76b077aed3SPierre Proncherycode base.
77b077aed3SPierre Pronchery
78b077aed3SPierre ProncheryThe official OpenSSL Git Repository is located at [git.openssl.org].
79b077aed3SPierre ProncheryThere is a GitHub mirror of the repository at [github.com/openssl/openssl],
80b077aed3SPierre Proncherywhich is updated automatically from the former on every commit.
81b077aed3SPierre Pronchery
82b077aed3SPierre ProncheryA local copy of the Git Repository can be obtained by cloning it from
83b077aed3SPierre Proncherythe original OpenSSL repository using
84b077aed3SPierre Pronchery
85b077aed3SPierre Pronchery    git clone git://git.openssl.org/openssl.git
86b077aed3SPierre Pronchery
87b077aed3SPierre Proncheryor from the GitHub mirror using
88b077aed3SPierre Pronchery
89b077aed3SPierre Pronchery    git clone https://github.com/openssl/openssl.git
90b077aed3SPierre Pronchery
91b077aed3SPierre ProncheryIf you intend to contribute to OpenSSL, either to fix bugs or contribute
92b077aed3SPierre Proncherynew features, you need to fork the OpenSSL repository openssl/openssl on
93b077aed3SPierre ProncheryGitHub and clone your public fork instead.
94b077aed3SPierre Pronchery
95b077aed3SPierre Pronchery    git clone https://github.com/yourname/openssl.git
96b077aed3SPierre Pronchery
97b077aed3SPierre ProncheryThis is necessary, because all development of OpenSSL nowadays is done via
98b077aed3SPierre ProncheryGitHub pull requests. For more details, see [Contributing](#contributing).
99b077aed3SPierre Pronchery
100b077aed3SPierre ProncheryBuild and Install
101b077aed3SPierre Pronchery=================
102b077aed3SPierre Pronchery
103b077aed3SPierre ProncheryAfter obtaining the Source, have a look at the [INSTALL](INSTALL.md) file for
104b077aed3SPierre Proncherydetailed instructions about building and installing OpenSSL. For some
105b077aed3SPierre Proncheryplatforms, the installation instructions are amended by a platform specific
106b077aed3SPierre Proncherydocument.
107b077aed3SPierre Pronchery
108b077aed3SPierre Pronchery * [Notes for UNIX-like platforms](NOTES-UNIX.md)
109b077aed3SPierre Pronchery * [Notes for Android platforms](NOTES-ANDROID.md)
110b077aed3SPierre Pronchery * [Notes for Windows platforms](NOTES-WINDOWS.md)
111b077aed3SPierre Pronchery * [Notes for the DOS platform with DJGPP](NOTES-DJGPP.md)
112b077aed3SPierre Pronchery * [Notes for the OpenVMS platform](NOTES-VMS.md)
113b077aed3SPierre Pronchery * [Notes on Perl](NOTES-PERL.md)
114b077aed3SPierre Pronchery * [Notes on Valgrind](NOTES-VALGRIND.md)
115b077aed3SPierre Pronchery
116b077aed3SPierre ProncherySpecific notes on upgrading to OpenSSL 3.0 from previous versions can be found
117b077aed3SPierre Proncheryin the [migration_guide(7ossl)] manual page.
118b077aed3SPierre Pronchery
119b077aed3SPierre ProncheryDocumentation
120b077aed3SPierre Pronchery=============
121b077aed3SPierre Pronchery
122b077aed3SPierre ProncheryManual Pages
123b077aed3SPierre Pronchery------------
124b077aed3SPierre Pronchery
125b077aed3SPierre ProncheryThe manual pages for the master branch and all current stable releases are
126b077aed3SPierre Proncheryavailable online.
127b077aed3SPierre Pronchery
128b077aed3SPierre Pronchery- [OpenSSL master](https://www.openssl.org/docs/manmaster)
129b077aed3SPierre Pronchery- [OpenSSL 3.0](https://www.openssl.org/docs/man3.0)
130b077aed3SPierre Pronchery- [OpenSSL 1.1.1](https://www.openssl.org/docs/man1.1.1)
131b077aed3SPierre Pronchery
132b077aed3SPierre ProncheryWiki
133b077aed3SPierre Pronchery----
134b077aed3SPierre Pronchery
135b077aed3SPierre ProncheryThere is a Wiki at [wiki.openssl.org] which is currently not very active.
136b077aed3SPierre ProncheryIt contains a lot of useful information, not all of which is up to date.
137b077aed3SPierre Pronchery
138b077aed3SPierre ProncheryLicense
139b077aed3SPierre Pronchery=======
140b077aed3SPierre Pronchery
141b077aed3SPierre ProncheryOpenSSL is licensed under the Apache License 2.0, which means that
142b077aed3SPierre Proncheryyou are free to get and use it for commercial and non-commercial
143b077aed3SPierre Proncherypurposes as long as you fulfill its conditions.
144b077aed3SPierre Pronchery
145b077aed3SPierre ProncherySee the [LICENSE.txt](LICENSE.txt) file for more details.
146b077aed3SPierre Pronchery
147b077aed3SPierre ProncherySupport
148b077aed3SPierre Pronchery=======
149b077aed3SPierre Pronchery
150b077aed3SPierre ProncheryThere are various ways to get in touch. The correct channel depends on
151b077aed3SPierre Proncheryyour requirement. see the [SUPPORT](SUPPORT.md) file for more details.
152b077aed3SPierre Pronchery
153b077aed3SPierre ProncheryContributing
154b077aed3SPierre Pronchery============
155b077aed3SPierre Pronchery
156b077aed3SPierre ProncheryIf you are interested and willing to contribute to the OpenSSL project,
157b077aed3SPierre Proncheryplease take a look at the [CONTRIBUTING](CONTRIBUTING.md) file.
158b077aed3SPierre Pronchery
159b077aed3SPierre ProncheryLegalities
160b077aed3SPierre Pronchery==========
161b077aed3SPierre Pronchery
162b077aed3SPierre ProncheryA number of nations restrict the use or export of cryptography. If you are
163b077aed3SPierre Proncherypotentially subject to such restrictions you should seek legal advice before
164b077aed3SPierre Proncheryattempting to develop or distribute cryptographic code.
165b077aed3SPierre Pronchery
166b077aed3SPierre ProncheryCopyright
167b077aed3SPierre Pronchery=========
168b077aed3SPierre Pronchery
169*e0c4386eSCy SchubertCopyright (c) 1998-2024 The OpenSSL Project
170b077aed3SPierre Pronchery
171b077aed3SPierre ProncheryCopyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
172b077aed3SPierre Pronchery
173b077aed3SPierre ProncheryAll rights reserved.
174b077aed3SPierre Pronchery
175b077aed3SPierre Pronchery<!-- Links  -->
176b077aed3SPierre Pronchery
177b077aed3SPierre Pronchery[www.openssl.org]:
178b077aed3SPierre Pronchery    <https://www.openssl.org>
179b077aed3SPierre Pronchery    "OpenSSL Homepage"
180b077aed3SPierre Pronchery
181b077aed3SPierre Pronchery[git.openssl.org]:
182b077aed3SPierre Pronchery    <https://git.openssl.org>
183b077aed3SPierre Pronchery    "OpenSSL Git Repository"
184b077aed3SPierre Pronchery
185b077aed3SPierre Pronchery[git.openssl.org]:
186b077aed3SPierre Pronchery    <https://git.openssl.org>
187b077aed3SPierre Pronchery    "OpenSSL Git Repository"
188b077aed3SPierre Pronchery
189b077aed3SPierre Pronchery[github.com/openssl/openssl]:
190b077aed3SPierre Pronchery    <https://github.com/openssl/openssl>
191b077aed3SPierre Pronchery    "OpenSSL GitHub Mirror"
192b077aed3SPierre Pronchery
193b077aed3SPierre Pronchery[wiki.openssl.org]:
194b077aed3SPierre Pronchery    <https://wiki.openssl.org>
195b077aed3SPierre Pronchery    "OpenSSL Wiki"
196b077aed3SPierre Pronchery
197b077aed3SPierre Pronchery[migration_guide(7ossl)]:
198b077aed3SPierre Pronchery    <https://www.openssl.org/docs/man3.0/man7/migration_guide.html>
199b077aed3SPierre Pronchery    "OpenSSL Migration Guide"
200b077aed3SPierre Pronchery
201b077aed3SPierre Pronchery[RFC 8446]:
202b077aed3SPierre Pronchery     <https://tools.ietf.org/html/rfc8446>
203b077aed3SPierre Pronchery
204b077aed3SPierre Pronchery<!-- Logos and Badges -->
205b077aed3SPierre Pronchery
206b077aed3SPierre Pronchery[openssl logo]:
207b077aed3SPierre Pronchery    doc/images/openssl.svg
208b077aed3SPierre Pronchery    "OpenSSL Logo"
209b077aed3SPierre Pronchery
210b077aed3SPierre Pronchery[github actions ci badge]:
211b077aed3SPierre Pronchery    <https://github.com/openssl/openssl/workflows/GitHub%20CI/badge.svg>
212b077aed3SPierre Pronchery    "GitHub Actions CI Status"
213b077aed3SPierre Pronchery
214b077aed3SPierre Pronchery[github actions ci]:
215b077aed3SPierre Pronchery    <https://github.com/openssl/openssl/actions?query=workflow%3A%22GitHub+CI%22>
216b077aed3SPierre Pronchery    "GitHub Actions CI"
217b077aed3SPierre Pronchery
218b077aed3SPierre Pronchery[appveyor badge]:
219b077aed3SPierre Pronchery    <https://ci.appveyor.com/api/projects/status/8e10o7xfrg73v98f/branch/master?svg=true>
220b077aed3SPierre Pronchery    "AppVeyor Build Status"
221b077aed3SPierre Pronchery
222b077aed3SPierre Pronchery[appveyor jobs]:
223b077aed3SPierre Pronchery    <https://ci.appveyor.com/project/openssl/openssl/branch/master>
224b077aed3SPierre Pronchery    "AppVeyor Jobs"
225