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