]> git.ipfire.org Git - thirdparty/openssl.git/blame - README.md
Implement riscv_vlen_asm for riscv32
[thirdparty/openssl.git] / README.md
CommitLineData
257e9d03
RS
1Welcome to the OpenSSL Project
2==============================
3
6c8149df 4[![openssl logo]][www.openssl.org]
d02b48c6 5
b897b353 6[![github actions ci badge]][github actions ci]
6c8149df 7[![appveyor badge]][appveyor jobs]
dac5138e 8
dac5138e 9OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit
ada33e98
MC
10for the TLS (formerly SSL), DTLS and QUIC (currently client side only)
11protocols.
0181a1a4
MC
12
13The protocol implementations are based on a full-strength general purpose
14cryptographic library, which can also be used stand-alone. Also included is a
15cryptographic module validated to conform with FIPS standards.
651d0aff 16
5f8e6c50
DMSP
17OpenSSL is descended from the SSLeay library developed by Eric A. Young
18and Tim J. Hudson.
dfca822f 19
6c8149df 20The official Home Page of the OpenSSL Project is [www.openssl.org].
dac5138e 21
dac5138e
DMSP
22Table of Contents
23=================
24
25 - [Overview](#overview)
26 - [Download](#download)
27 - [Build and Install](#build-and-install)
28 - [Documentation](#documentation)
29 - [License](#license)
30 - [Support](#support)
31 - [Contributing](#contributing)
32 - [Legalities](#legalities)
651d0aff 33
5f8e6c50
DMSP
34Overview
35========
15133316 36
5f8e6c50 37The OpenSSL toolkit includes:
651d0aff 38
dac5138e 39- **libssl**
0181a1a4
MC
40 an implementation of all TLS protocol versions up to TLSv1.3 ([RFC 8446]),
41 DTLS protocol versions up to DTLSv1.2 ([RFC 6347]) and
ada33e98 42 the QUIC (currently client side only) version 1 protocol ([RFC 9000]).
dac5138e
DMSP
43
44- **libcrypto**
45 a full-strength general purpose cryptographic library. It constitutes the
46 basis of the TLS implementation, but can also be used independently.
47
48- **openssl**
49 the OpenSSL command line tool, a swiss army knife for cryptographic tasks,
50 testing and analyzing. It can be used for
257e9d03
RS
51 - creation of key parameters
52 - creation of X.509 certificates, CSRs and CRLs
53 - calculation of message digests
54 - encryption and decryption
0181a1a4
MC
55 - SSL/TLS/DTLS and client and server tests
56 - QUIC client tests
257e9d03
RS
57 - handling of S/MIME signed or encrypted mail
58 - and more...
dac5138e
DMSP
59
60Download
61========
651d0aff 62
dac5138e
DMSP
63For Production Use
64------------------
651d0aff 65
dac5138e
DMSP
66Source code tarballs of the official releases can be downloaded from
67[www.openssl.org/source](https://www.openssl.org/source).
68The OpenSSL project does not distribute the toolkit in binary form.
d7f0ab5f 69
dac5138e 70However, for a large variety of operating systems precompiled versions
af33b200
TS
71of the OpenSSL toolkit are available. In particular, on Linux and other
72Unix operating systems, it is normally recommended to link against the
dac5138e 73precompiled shared libraries provided by the distributor or vendor.
dfca822f 74
0181a1a4
MC
75We also maintain a list of third parties that produce OpenSSL binaries for
76various Operating Systems (including Windows) on the [Binaries] page on our
77wiki.
78
dac5138e
DMSP
79For Testing and Development
80---------------------------
dfca822f 81
dac5138e
DMSP
82Although testing and development could in theory also be done using
83the source tarballs, having a local copy of the git repository with
84the entire project history gives you much more insight into the
85code base.
86
6c8149df
DMSP
87The official OpenSSL Git Repository is located at [git.openssl.org].
88There is a GitHub mirror of the repository at [github.com/openssl/openssl],
dac5138e
DMSP
89which is updated automatically from the former on every commit.
90
91A local copy of the Git Repository can be obtained by cloning it from
92the original OpenSSL repository using
93
257e9d03 94 git clone git://git.openssl.org/openssl.git
dac5138e
DMSP
95
96or from the GitHub mirror using
97
257e9d03 98 git clone https://github.com/openssl/openssl.git
dac5138e
DMSP
99
100If you intend to contribute to OpenSSL, either to fix bugs or contribute
101new features, you need to fork the OpenSSL repository openssl/openssl on
102GitHub and clone your public fork instead.
103
257e9d03 104 git clone https://github.com/yourname/openssl.git
dac5138e 105
af33b200 106This is necessary because all development of OpenSSL nowadays is done via
dac5138e
DMSP
107GitHub pull requests. For more details, see [Contributing](#contributing).
108
dac5138e
DMSP
109Build and Install
110=================
111
112After obtaining the Source, have a look at the [INSTALL](INSTALL.md) file for
113detailed instructions about building and installing OpenSSL. For some
114platforms, the installation instructions are amended by a platform specific
115document.
116
4148581e
DMSP
117 * [Notes for UNIX-like platforms](NOTES-UNIX.md)
118 * [Notes for Android platforms](NOTES-ANDROID.md)
119 * [Notes for Windows platforms](NOTES-WINDOWS.md)
120 * [Notes for the DOS platform with DJGPP](NOTES-DJGPP.md)
121 * [Notes for the OpenVMS platform](NOTES-VMS.md)
122 * [Notes on Perl](NOTES-PERL.md)
123 * [Notes on Valgrind](NOTES-VALGRIND.md)
dac5138e 124
0181a1a4 125Specific notes on upgrading to OpenSSL 3.x from previous versions can be found
27315a97 126in the [ossl-guide-migration(7ossl)] manual page.
dac5138e
DMSP
127
128Documentation
129=============
130
0181a1a4
MC
131README Files
132------------
133
134There are some README.md files in the top level of the source distribution
135containing additional information on specific topics.
136
137 * [Information about the OpenSSL QUIC protocol implementation](README-QUIC.md)
138 * [Information about the OpenSSL Provider architecture](README-PROVIDERS.md)
139 * [Information about using the OpenSSL FIPS validated module](README-FIPS.md)
140 * [Information about the legacy OpenSSL Engine architecture](README-ENGINES.md)
141
142The OpenSSL Guide
143-----------------
144
145There are some tutorial and introductory pages on some important OpenSSL topics
146within the [OpenSSL Guide].
147
dac5138e
DMSP
148Manual Pages
149------------
150
151The manual pages for the master branch and all current stable releases are
152available online.
153
154- [OpenSSL master](https://www.openssl.org/docs/manmaster)
a20c9b6c 155- [OpenSSL 3.0](https://www.openssl.org/docs/man3.0)
0181a1a4 156- [OpenSSL 3.1](https://www.openssl.org/docs/man3.1)
4f0172c5 157- [OpenSSL 3.2](https://www.openssl.org/docs/man3.2)
dac5138e 158
899c910e
MC
159Demos
160-----
161
162The are numerous source code demos for using various OpenSSL capabilities in the
163[demos subfolder](./demos).
164
dac5138e
DMSP
165Wiki
166----
167
6c8149df 168There is a Wiki at [wiki.openssl.org] which is currently not very active.
af33b200 169It contains a lot of useful information, not all of which is up-to-date.
dac5138e
DMSP
170
171License
5f8e6c50 172=======
0e37c909 173
dac5138e
DMSP
174OpenSSL is licensed under the Apache License 2.0, which means that
175you are free to get and use it for commercial and non-commercial
176purposes as long as you fulfill its conditions.
dfca822f 177
036cbb6b 178See the [LICENSE.txt](LICENSE.txt) file for more details.
dfca822f 179
dac5138e
DMSP
180Support
181=======
dfca822f 182
dac5138e 183There are various ways to get in touch. The correct channel depends on
af33b200 184your requirement. See the [SUPPORT](SUPPORT.md) file for more details.
dfca822f 185
dac5138e
DMSP
186Contributing
187============
932af161 188
dac5138e
DMSP
189If you are interested and willing to contribute to the OpenSSL project,
190please take a look at the [CONTRIBUTING](CONTRIBUTING.md) file.
b282fdae 191
dac5138e
DMSP
192Legalities
193==========
b06935f4 194
dac5138e 195A number of nations restrict the use or export of cryptography. If you are
af33b200 196potentially subject to such restrictions, you should seek legal advice before
dac5138e 197attempting to develop or distribute cryptographic code.
5f8e6c50 198
5f8e6c50
DMSP
199Copyright
200=========
201
b6461792 202Copyright (c) 1998-2024 The OpenSSL Project Authors
5f8e6c50
DMSP
203
204Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
205
206All rights reserved.
dac5138e 207
dac5138e
DMSP
208<!-- Links -->
209
210[www.openssl.org]:
257e9d03 211 <https://www.openssl.org>
dac5138e
DMSP
212 "OpenSSL Homepage"
213
214[git.openssl.org]:
257e9d03 215 <https://git.openssl.org>
dac5138e
DMSP
216 "OpenSSL Git Repository"
217
218[git.openssl.org]:
257e9d03 219 <https://git.openssl.org>
dac5138e
DMSP
220 "OpenSSL Git Repository"
221
222[github.com/openssl/openssl]:
257e9d03 223 <https://github.com/openssl/openssl>
dac5138e
DMSP
224 "OpenSSL GitHub Mirror"
225
dac5138e 226[wiki.openssl.org]:
257e9d03 227 <https://wiki.openssl.org>
dac5138e
DMSP
228 "OpenSSL Wiki"
229
27315a97
MSP
230[ossl-guide-migration(7ossl)]:
231 <https://www.openssl.org/docs/manmaster/man7/ossl-guide-migration.html>
96a77661 232 "OpenSSL Migration Guide"
84dd002f 233
dac5138e 234[RFC 8446]:
257e9d03 235 <https://tools.ietf.org/html/rfc8446>
dac5138e 236
0181a1a4
MC
237[RFC 6347]:
238 <https://tools.ietf.org/html/rfc6347>
239
240[RFC 9000]:
241 <https://tools.ietf.org/html/rfc9000>
242
243[Binaries]:
ada33e98 244 <https://wiki.openssl.org/index.php/Binaries>
0181a1a4
MC
245 "List of third party OpenSSL binaries"
246
247[OpenSSL Guide]:
ada33e98 248 <https://www.openssl.org/docs/manmaster/man7/ossl-guide-introduction.html>
0181a1a4
MC
249 "An introduction to OpenSSL"
250
dac5138e 251<!-- Logos and Badges -->
dac5138e
DMSP
252
253[openssl logo]:
254 doc/images/openssl.svg
255 "OpenSSL Logo"
256
b897b353
RL
257[github actions ci badge]:
258 <https://github.com/openssl/openssl/workflows/GitHub%20CI/badge.svg>
259 "GitHub Actions CI Status"
dac5138e 260
b897b353
RL
261[github actions ci]:
262 <https://github.com/openssl/openssl/actions?query=workflow%3A%22GitHub+CI%22>
263 "GitHub Actions CI"
dac5138e
DMSP
264
265[appveyor badge]:
0799b79a 266 <https://ci.appveyor.com/api/projects/status/8e10o7xfrg73v98f/branch/master?svg=true>
dac5138e
DMSP
267 "AppVeyor Build Status"
268
269[appveyor jobs]:
257e9d03 270 <https://ci.appveyor.com/project/openssl/openssl/branch/master>
dac5138e 271 "AppVeyor Jobs"