Latest development in branch 1.0.2
1.0.2u
Released 20 Dec 2019
(6 years ago)
SoftwareOpenSSL
Branch1.0.2
StatusLTS
End of life
Initial release1.0.2
22 Jan 2015
(11 years ago)
Latest release1.0.2u
20 Dec 2019
(6 years ago)
End of
OSS support
31 Dec 2019
(Ended 6 years, 4 months ago)
Premium supportYes
Release noteshttps://github.com/openssl/openssl/releases/tag/OpenSSL_1_0_2u
Source codehttps://github.com/openssl/openssl/tree/OpenSSL_1_0_2u
Downloadhttps://github.com/openssl/openssl/releases/tag/OpenSSL_1_0_2u
OpenSSL 1.0.2 ReleasesView full list

What Is New in OpenSSL 1.0.2

Category Highlights
New Features
  • Native TLS 1.2 support with full cipher suite selection.
  • ChaCha20-Poly1305 AEAD cipher for high-performance mobile devices.
  • Elliptic-curve Diffie-Hellman (ECDH) curves P-256, P-384, P-521 enabled by default.
  • Engine API for hardware acceleration (e.g., Intel QuickAssist).
Improvements
  • Reduced memory footprint for RSA key generation.
  • Optimised SHA-256/384 implementations on x86_64.
  • Better error reporting in the EVP API.
Bug Fixes
  • Fixed CVE-2015-1793: timing side-channel in RSA private ops.
  • Resolved handshake dead-lock when using TLS 1.2 with client-auth.
  • Corrected ASN.1 parsing for long-form lengths.
Breaking Changes
  • SSLv2 and SSLv3 protocols disabled by default; must be re-enabled explicitly.
  • Deprecated the "SSLv23_method" in favor of "TLS_method".
Deprecations
  • MD2 and MD4 message digests removed from default builds.
  • RC4 cipher suite disabled unless explicitly requested.

How does OpenSSL 1.0.2 enable full TLS 1.2 support?

OpenSSL 1.0.2 adds native TLS 1.2 handshake logic and exposes the full TLS 1.2 cipher suite list through the SSL_CTX_set_cipher_list API.

In practice this means you can enable modern ciphers such as AES-GCM and ChaCha20-Poly1305 with a single configuration line:

SSL_CTX_set_cipher_list(ctx, "TLSv1.2:!aNULL:!MD5");

Watch out for legacy clients that only support TLS 1.0; you may need to keep a fallback SSLv23_method if backward compatibility is required.

What new AEAD cipher does OpenSSL 1.0.2 introduce for mobile performance?

OpenSSL 1.0.2 ships with the ChaCha20-Poly1305 AEAD cipher, which outperforms AES-GCM on CPUs without AES-NI.

Production teams can enable it by adding "CHACHA20-POLY1305" to the cipher string:

SSL_CTX_set_cipher_list(ctx, "CHACHA20-POLY1305:HIGH");

This matters if your workload runs on ARM-based servers or mobile devices where hardware AES acceleration is unavailable.

Why are SSLv2 and SSLv3 disabled by default in OpenSSL 1.0.2?

SSLv2 and SSLv3 are disabled by default because they are considered insecure and have known protocol-level vulnerabilities.

To re-enable them you must explicitly call SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) and SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv3) with the opposite logic, or use the legacy method SSLv23_method with appropriate options.

Most teams can drop support for these protocols without impact, simplifying compliance audits.

How have RSA key generation performance and memory usage changed in OpenSSL 1.0.2?

OpenSSL 1.0.2 reduces the memory footprint of RSA key generation by up to 30 % and speeds up the operation on modern CPUs.

Internally the BIGNUM allocation strategy was tuned and the Miller-Rabin primality test now uses a tighter bound for the number of rounds.

In practice you'll notice faster startup for services that generate temporary RSA keys on the fly, such as TLS-terminating proxies.

FAQ

Does OpenSSL 1.0.2 support TLS 1.2 by default?
Yes, TLS 1.2 is enabled out of the box and you can select its ciphers with the SSL_CTX_set_cipher_list call.

Can I still use the old SSLv23_method in OpenSSL 1.0.2?
You can, but you must explicitly enable the legacy protocols because they are disabled by default.

What command shows the available cipher suites in OpenSSL 1.0.2?
Run openssl ciphers -v to list all supported ciphers including the new ChaCha20-Poly1305 suite.

Is the MD5 digest still available for HMAC in OpenSSL 1.0.2?
MD5 is still compiled but it is no longer part of the default digest list and is discouraged for new applications.

How do I test a server for TLS 1.2 compatibility with OpenSSL 1.0.2?
Use openssl s_client -connect example.com:443 -tls1_2 to initiate a TLS 1.2 handshake.

Will existing applications need code changes to compile against OpenSSL 1.0.2?
Most applications will compile unchanged, but any code that explicitly disables TLS 1.2 or uses deprecated SSLv23_method may need adjustments.

Releases In Branch 1.0.2

VersionRelease date
1.0.2u20 Dec 2019
(6 years ago)
1.0.2t10 Sep 2019
(6 years ago)
1.0.2s28 May 2019
(6 years ago)
1.0.2r26 Feb 2019
(7 years ago)
1.0.2q20 Nov 2018
(7 years ago)
1.0.2p14 Aug 2018
(7 years ago)
1.0.2o27 Mar 2018
(8 years ago)
1.0.2n07 Dec 2017
(8 years ago)
1.0.2m02 Nov 2017
(8 years ago)
1.0.2l25 May 2017
(8 years ago)
1.0.2k26 Jan 2017
(9 years ago)
1.0.2j26 Sep 2016
(9 years ago)
1.0.2i22 Sep 2016
(9 years ago)
1.0.2h03 May 2016
(10 years ago)
1.0.2g01 Mar 2016
(10 years ago)
1.0.2f28 Jan 2016
(10 years ago)
1.0.2e03 Dec 2015
(10 years ago)
1.0.2d09 Jul 2015
(10 years ago)
1.0.2c12 Jun 2015
(10 years ago)
1.0.2b11 Jun 2015
(10 years ago)
1.0.2a19 Mar 2015
(11 years ago)
1.0.222 Jan 2015
(11 years ago)
1.0.2-beta325 Sep 2014
(11 years ago)
1.0.2-beta222 Jul 2014
(11 years ago)
1.0.2-beta124 Feb 2014
(12 years ago)