Latest development in branch 1.0.0
1.0.0t
Released 03 Dec 2015
(10 years ago)
SoftwareOpenSSL
Branch1.0.0
Status
End of life
Initial release1.0.0
29 Mar 2010
(16 years ago)
Latest release1.0.0t
03 Dec 2015
(10 years ago)
End of
OSS support
31 Dec 2015
(Ended 10 years, 4 months ago)
Premium supportUnavailable
Release noteshttps://github.com/openssl/openssl/releases/tag/OpenSSL_1_0_0t
Source codehttps://github.com/openssl/openssl/tree/OpenSSL_1_0_0t
Downloadhttps://github.com/openssl/openssl/releases/tag/OpenSSL_1_0_0t
OpenSSL 1.0.0 ReleasesView full list

What Is New in OpenSSL 1.0.0

Category Highlights
New Features TLS 1.2 support, native ECC primitives, ChaCha20-Poly1305 cipher, expanded EVP_PKEY API
Improvements Engine framework refactor, enhanced thread safety, stronger RAND implementation, richer error strings
Bug Fixes Fixed padding-oracle CVE-2010-0745, eliminated BIO memory leaks, corrected ASN.1 parsing edge cases
Breaking Changes Removed MD2/MD4, disabled SSLv2/SSLv3 by default, changed SSL_CTX_set_options semantics, EVP_CIPHER_CTX_cleanup deprecated
Deprecations SSLv2/SSLv3 protocols, DSA key generation functions, low-level RSA helpers in favor of EVP layer

Does OpenSSL 1.0.0 add support for TLS 1.2 and newer cipher suites?

Yes, OpenSSL 1.0.0 introduces full TLS 1.2 support with modern cipher suites.

In practice this means you can negotiate AES-GCM, SHA-256/384 PRFs, and the ChaCha20-Poly1305 AEAD cipher directly from the command line or via the API. The default configuration now prefers TLS 1.2 over older versions, which improves security posture for production services.

  • New cipher identifiers: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
  • Legacy SSLv2/SSLv3 are disabled by default; enable them only with explicit flags.
openssl s_client -connect example.com:443 -tls1_2

How does OpenSSL 1.0.0 improve elliptic curve cryptography support?

OpenSSL 1.0.0 adds native ECC key generation and ECDH/ECDSA operations.

This matters if your services rely on low-latency key exchange or need to meet FIPS-140-2 curve requirements. The library now ships with a curated set of NIST and Brainpool curves and provides a simplified API for generating and using them.

  • Supported curves include prime256v1, secp384r1, secp521r1, brainpoolP256r1.
  • New EVP_PKEY_EC methods replace the older EC_KEY functions for better abstraction.
openssl ecparam -name prime256v1 -genkey -noout -out ec_key.pem

What breaking changes should I be aware of when upgrading to OpenSSL 1.0.0?

Upgrading to 1.0.0 removes several legacy algorithms and alters default protocol settings.

Watch out for the following production impacts:

  • MD2 and MD4 hash functions are no longer compiled in; applications that call EVP_md2() will fail to link.
  • SSLv2 and SSLv3 are disabled by default; you must add -no_ssl2 or -no_ssl3 to re-enable, but this is discouraged.
  • The SSL_CTX_set_options call now clears the SSL_OP_NO_TLSv1_2 flag unless explicitly set, which can change handshake behavior.
  • Low-level RSA helpers such as RSA_generate_key are deprecated; switch to the EVP_PKEY API to avoid compilation errors.

Which APIs were deprecated in OpenSSL 1.0.0 and what are the recommended replacements?

A number of low-level crypto APIs were deprecated in favor of the EVP abstraction layer.

Most teams should migrate to the EVP_* family to gain algorithm agility and future-proof their code.

  • Deprecated: RSA_sign, RSA_verify → Use EVP_DigestSign / EVP_DigestVerify.
  • Deprecated: Direct MD5(), SHA1() calls → Use EVP_DigestInit_ex with the desired EVP_MD.
  • Deprecated: SSLv2_client_method, SSLv3_server_method → Use TLS_method and set min/max version via SSL_CTX_set_min_proto_version.
EVP_DigestSignInit(mdctx, NULL, EVP_sha256(), NULL, pkey);

FAQ

Does OpenSSL 1.0.0 require recompiling applications that use the SSL library?
Most applications will need to be recompiled to link against the new libssl and libcrypto due to ABI changes.

Can I still use SSLv2 with OpenSSL 1.0.0?
SSLv2 is disabled by default and the API for it has been removed, so it cannot be used.

How do I enable TLS 1.2 on the command line with OpenSSL 1.0.0?
Use the -tls1_2 flag with openssl s_client or s_server.

What is the new command to generate an EC key pair?
Run openssl ecparam -name prime256v1 -genkey -noout -out ec_key.pem.

Are the old MD2 and MD4 hash functions still available?
No, MD2 and MD4 have been removed from the default build.

Does the new RAND API affect existing entropy sources?
The RAND_poll implementation was improved but existing calls to RAND_bytes remain compatible.

Releases In Branch 1.0.0

VersionRelease date
1.0.0t03 Dec 2015
(10 years ago)
1.0.0s11 Jun 2015
(10 years ago)
1.0.0r19 Mar 2015
(11 years ago)
1.0.0q15 Jan 2015
(11 years ago)
1.0.0p08 Jan 2015
(11 years ago)
1.0.0o15 Oct 2014
(11 years ago)
1.0.0n06 Aug 2014
(11 years ago)
1.0.0m05 Jun 2014
(11 years ago)
1.0.0l06 Jan 2014
(12 years ago)
1.0.0k06 Feb 2013
(13 years ago)
1.0.0j10 May 2012
(14 years ago)
1.0.0i19 Apr 2012
(14 years ago)
1.0.0h12 Mar 2012
(14 years ago)
1.0.0g18 Jan 2012
(14 years ago)
1.0.0f04 Jan 2012
(14 years ago)
1.0.0e06 Sep 2011
(14 years ago)
1.0.0d08 Feb 2011
(15 years ago)
1.0.0c02 Dec 2010
(15 years ago)
1.0.0b16 Nov 2010
(15 years ago)
1.0.0a01 Jun 2010
(15 years ago)
1.0.029 Mar 2010
(16 years ago)
1.0.0-beta520 Jan 2010
(16 years ago)
1.0.0-beta410 Nov 2009
(16 years ago)
1.0.0-beta315 Jul 2009
(16 years ago)
1.0.0-beta221 Apr 2009
(17 years ago)
1.0.0-beta101 Apr 2009
(17 years ago)