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