openssl /openssl

General purpose TLS and crypto library

★ 31,400⑂ 11,591👁 1,016⑃ 19,759● 11,882▤ 323◈ 1,580
CApache-2.0Created 2013-01-15openssl-library.org/
31,400
stars
+13
11,591
forks
1,016
watchers
19,759
prs
11,882
issues
323
releases
1,580
discussions

README

Welcome to the OpenSSL Project
==============================

[![openssl logo]][www.openssl.org]

[![github actions ci badge]][github actions ci]






OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit
for the Transport Layer Security (TLS, formerly SSL), Datagram TLS (DTLS), and QUIC protocols.

The protocol implementations are based on a full-strength general purpose
cryptographic library, which can also be used stand-alone. Also included is a
cryptographic module validated to conform with FIPS standards.

OpenSSL is descended from the SSLeay library developed by Eric A. Young
and Tim J. Hudson.

The official Home Page of the OpenSSL Project is [www.openssl.org].

Table of Contents
=================

 - Overview
 - Download
 - Build and Install
 - Documentation
 - License
 - Support
 - Contributing
 - Legalities

Overview
========

The OpenSSL toolkit includes:

- libssl
  an implementation of all TLS protocol versions up to TLSv1.3 ([RFC 8446]),
  DTLS protocol versions up to DTLSv1.3 ([RFC 9147]) and
  the QUIC version 1 protocol ([RFC 9000]).

- libcrypto
  a full-strength general purpose cryptographic library. It constitutes the
  basis of the TLS implementation, but can also be used independently.

- openssl
  the OpenSSL command line tool, a Swiss Army knife for cryptographic tasks,
  testing and analyzing. It can be used for
  - creation of key parameters
  - creation of X.509 certificates, CSRs and CRLs
  - calculation of message digests
  - encryption and decryption
  - SSL/TLS/DTLS and client and server tests
  - QUIC client tests
  - handling of S/MIME signed or encrypted mail
  - and more...

Download
========

For Production Use
------------------

Source code tarballs of the official releases can be downloaded from
openssl-library.org/source/.
The OpenSSL project does not distribute the toolkit in binary form.

However, for a large variety of operating systems precompiled versions
of the OpenSSL toolkit are available. In particular, on Linux and other
Unix operating systems, it is normally recommended to link against the
precompiled shared libraries provided by the distributor or vendor.

We also maintain a list of third parties that produce OpenSSL binaries for
various Operating Systems (including Windows) on the [Binaries] page on our
wiki.

For Testing and Development
---------------------------

Although testing and development could in theory also be done using
the source tarballs, having a local copy of the git repository with
the entire project history gives you much more insight into the
code base.

The main OpenSSL Git repository is private.
There is a public GitHub mirror of it at [github.com/openssl/openssl],
which is updated automatically from the former on every commit.

A local copy of the Git repository can be obtained by cloning it from
the GitHub mirror using

    git clone https://github.com/openssl/openssl.git

If you intend to contribute to OpenSSL, either to fix bugs or contribute
new f

Top issues

Discussions

Latest release

OpenSSL 4.1.0 openssl-4.1.0 2026-10-23
OpenSSL 4.1.0 is a feature release adding significant new functionality
to OpenSSL.

This release incorporates the following potentially significant or incompatible
changes:

   Added VC-WIN32-MSVC2013 and VC-WIN64A-MSVC2013 build targets to provide
    internal functions for bridging the gaps in C99 standard support
    that are present in MSVC 2013.

   Added optimized ML-DSA and ML-KEM NTT operations on ppc64le;
    optimized ML-DSA operations on x86_64;
    AVX-512-optimized SHAKE x4 operations for ML-DSA on x86_64;
    AVX-512 and VAES optimizations for AES-CBC decryption on 

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON