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