]>
Commit | Line | Data |
---|---|---|
257e9d03 RS |
1 | Welcome 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 | 9 | OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit |
ada33e98 MC |
10 | for the TLS (formerly SSL), DTLS and QUIC (currently client side only) |
11 | protocols. | |
0181a1a4 MC |
12 | |
13 | The protocol implementations are based on a full-strength general purpose | |
14 | cryptographic library, which can also be used stand-alone. Also included is a | |
15 | cryptographic module validated to conform with FIPS standards. | |
651d0aff | 16 | |
5f8e6c50 DMSP |
17 | OpenSSL is descended from the SSLeay library developed by Eric A. Young |
18 | and Tim J. Hudson. | |
dfca822f | 19 | |
6c8149df | 20 | The official Home Page of the OpenSSL Project is [www.openssl.org]. |
dac5138e | 21 | |
dac5138e DMSP |
22 | Table 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 |
34 | Overview |
35 | ======== | |
15133316 | 36 | |
5f8e6c50 | 37 | The 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 | |
60 | Download | |
61 | ======== | |
651d0aff | 62 | |
dac5138e DMSP |
63 | For Production Use |
64 | ------------------ | |
651d0aff | 65 | |
dac5138e DMSP |
66 | Source code tarballs of the official releases can be downloaded from |
67 | [www.openssl.org/source](https://www.openssl.org/source). | |
68 | The OpenSSL project does not distribute the toolkit in binary form. | |
d7f0ab5f | 69 | |
dac5138e | 70 | However, for a large variety of operating systems precompiled versions |
af33b200 TS |
71 | of the OpenSSL toolkit are available. In particular, on Linux and other |
72 | Unix operating systems, it is normally recommended to link against the | |
dac5138e | 73 | precompiled shared libraries provided by the distributor or vendor. |
dfca822f | 74 | |
0181a1a4 MC |
75 | We also maintain a list of third parties that produce OpenSSL binaries for |
76 | various Operating Systems (including Windows) on the [Binaries] page on our | |
77 | wiki. | |
78 | ||
dac5138e DMSP |
79 | For Testing and Development |
80 | --------------------------- | |
dfca822f | 81 | |
dac5138e DMSP |
82 | Although testing and development could in theory also be done using |
83 | the source tarballs, having a local copy of the git repository with | |
84 | the entire project history gives you much more insight into the | |
85 | code base. | |
86 | ||
6c8149df DMSP |
87 | The official OpenSSL Git Repository is located at [git.openssl.org]. |
88 | There is a GitHub mirror of the repository at [github.com/openssl/openssl], | |
dac5138e DMSP |
89 | which is updated automatically from the former on every commit. |
90 | ||
91 | A local copy of the Git Repository can be obtained by cloning it from | |
92 | the original OpenSSL repository using | |
93 | ||
257e9d03 | 94 | git clone git://git.openssl.org/openssl.git |
dac5138e DMSP |
95 | |
96 | or from the GitHub mirror using | |
97 | ||
257e9d03 | 98 | git clone https://github.com/openssl/openssl.git |
dac5138e DMSP |
99 | |
100 | If you intend to contribute to OpenSSL, either to fix bugs or contribute | |
101 | new features, you need to fork the OpenSSL repository openssl/openssl on | |
102 | GitHub and clone your public fork instead. | |
103 | ||
257e9d03 | 104 | git clone https://github.com/yourname/openssl.git |
dac5138e | 105 | |
af33b200 | 106 | This is necessary because all development of OpenSSL nowadays is done via |
dac5138e DMSP |
107 | GitHub pull requests. For more details, see [Contributing](#contributing). |
108 | ||
dac5138e DMSP |
109 | Build and Install |
110 | ================= | |
111 | ||
112 | After obtaining the Source, have a look at the [INSTALL](INSTALL.md) file for | |
113 | detailed instructions about building and installing OpenSSL. For some | |
114 | platforms, the installation instructions are amended by a platform specific | |
115 | document. | |
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 | 125 | Specific notes on upgrading to OpenSSL 3.x from previous versions can be found |
27315a97 | 126 | in the [ossl-guide-migration(7ossl)] manual page. |
dac5138e DMSP |
127 | |
128 | Documentation | |
129 | ============= | |
130 | ||
0181a1a4 MC |
131 | README Files |
132 | ------------ | |
133 | ||
134 | There are some README.md files in the top level of the source distribution | |
135 | containing 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 | ||
142 | The OpenSSL Guide | |
143 | ----------------- | |
144 | ||
145 | There are some tutorial and introductory pages on some important OpenSSL topics | |
146 | within the [OpenSSL Guide]. | |
147 | ||
dac5138e DMSP |
148 | Manual Pages |
149 | ------------ | |
150 | ||
151 | The manual pages for the master branch and all current stable releases are | |
152 | available 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 |
159 | Demos |
160 | ----- | |
161 | ||
162 | The are numerous source code demos for using various OpenSSL capabilities in the | |
163 | [demos subfolder](./demos). | |
164 | ||
dac5138e DMSP |
165 | Wiki |
166 | ---- | |
167 | ||
6c8149df | 168 | There is a Wiki at [wiki.openssl.org] which is currently not very active. |
af33b200 | 169 | It contains a lot of useful information, not all of which is up-to-date. |
dac5138e DMSP |
170 | |
171 | License | |
5f8e6c50 | 172 | ======= |
0e37c909 | 173 | |
dac5138e DMSP |
174 | OpenSSL is licensed under the Apache License 2.0, which means that |
175 | you are free to get and use it for commercial and non-commercial | |
176 | purposes as long as you fulfill its conditions. | |
dfca822f | 177 | |
036cbb6b | 178 | See the [LICENSE.txt](LICENSE.txt) file for more details. |
dfca822f | 179 | |
dac5138e DMSP |
180 | Support |
181 | ======= | |
dfca822f | 182 | |
dac5138e | 183 | There are various ways to get in touch. The correct channel depends on |
af33b200 | 184 | your requirement. See the [SUPPORT](SUPPORT.md) file for more details. |
dfca822f | 185 | |
dac5138e DMSP |
186 | Contributing |
187 | ============ | |
932af161 | 188 | |
dac5138e DMSP |
189 | If you are interested and willing to contribute to the OpenSSL project, |
190 | please take a look at the [CONTRIBUTING](CONTRIBUTING.md) file. | |
b282fdae | 191 | |
dac5138e DMSP |
192 | Legalities |
193 | ========== | |
b06935f4 | 194 | |
dac5138e | 195 | A number of nations restrict the use or export of cryptography. If you are |
af33b200 | 196 | potentially subject to such restrictions, you should seek legal advice before |
dac5138e | 197 | attempting to develop or distribute cryptographic code. |
5f8e6c50 | 198 | |
5f8e6c50 DMSP |
199 | Copyright |
200 | ========= | |
201 | ||
c5f55a46 | 202 | Copyright (c) 1998-2023 The OpenSSL Project Authors |
5f8e6c50 DMSP |
203 | |
204 | Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson | |
205 | ||
206 | All 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" |