aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog249
1 files changed, 239 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index c03ff15..cf77c2a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
1Because this project is maintained both in the OpenBSD tree using CVS and in 1Because this project is maintained both in the OpenBSD tree using CVS and in
2Git, it can be confusing following all of the changes. 2Git, it can be confusing following all of the changes.
3 3
4Most of the libssl and libcrypto source code is is here in OpenBSD CVS: 4Most of the libssl and libcrypto source code is here in OpenBSD CVS:
5 5
6 https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libssl/ 6 https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libssl/
7 7
@@ -28,12 +28,181 @@ history is also available from Git.
28 28
29LibreSSL Portable Release Notes: 29LibreSSL Portable Release Notes:
30 30
314.0.0 - In development 314.3.0 - In development
32
33 * Internal improvements
34 - Remove the unused sequence number from X509_REVOKED.
35 - Replace a call to atoi() with strtonum() in nc(1) and replace a
36 misleading use of ntohs() with htons().
37 * Compatibility changes
38 - Expose X509_VERIFY_PARAM_set_hostflags() as a public symbol.
39 - Provide SSL_SESSION_dup().
40 * New features: support for MLKEM768_X25519 keyshare in TLS.
41 https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem/
42 * Bug fixes
43 - Ensure the group selected by a TLSv1.3 server for a
44 HelloRetryRequest is not one for which the client has
45 already sent a key share.
46
474.2.0 - Stable release
48
49 * Portable changes
50 - Added explicit OpenBSD/ISC license to build system / scripts.
51 - Fixed compilation on more CPU targets by removing architecture-specific
52 definitions from header files.
53 - Fixed builds in deep paths by using relative paths for linking.
54 - Fixed Windows builds with Clang and CMake.
55 - Fixed Windows error handling accepting connections with nc.
56 - Fixed 32-bit ARM builds on Darwin.
57 * Internal improvements
58 - Cleaned up code implementing block cipher modes of operation.
59 Includes untangling a horrible #ifdef mess and removing a few
60 instances of undefined behavior.
61 - Removed assembly implementations of AES using bit slicing (BS-AES)
62 and vector permutation (VP-AES).
63 - Removed OPENSSL_SMALL_FOOTPRINT and OPENSSL_FIPSAPI.
64 - Implemented constant time EC field element operations to allow
65 elliptic curve operations without bignum arithmetic.
66 - Implemented an EC method using homogeneous projective coordinates.
67 This will allow exception-free elliptic curve arithmetic in
68 constant time in future releases.
69 - Started cleaning up the openssl speed implementation.
70 - The last SIGILL-based CPU capability detection was removed.
71 Instead, capabilities are now detected using a constructor on
72 library load, which improves the incomplete coverage by calls
73 to OPENSSL_init_crypto() on various entry points.
74 - Rework and simplify AES handling in EVP. In particular, AES-NI
75 is now handled in the AES internal code and no longer requires
76 the use of EVP.
77 - Added a public API for ML-KEM. This is not yet documented in a
78 manpage and may not be in its final form. This will be used to
79 support X25519MLKEM768 in libssl.
80 * Compatibility changes
81 - Removed the -msie_hack option from the openssl(1) ca subcommand.
82 - Removed parameters of the 239-bit prime curves from X9.62, H.5.2:
83 prime239v1, prime239v2, prime239v3.
84 - Increased default MAC salt length used by PKCS12_set_mac(3) to 16
85 per recommendation of NIST SP 800-132.
86 - Encrypted PKCS#8 key files now use a default password-based key
87 derivation function that is acceptable in the present millenium.
88 - const corrected EVP_PKEY_get{0,1}_{DH,DSA,EC_KEY,RSA}().
89 - X509_CRL_verify() now checks that the AlgorithmIdentifiers in the
90 signature and the tbsCertList are identical.
91 - Of the old *err() only PEMerr(), RSAerr(), and SSLerr() remain.
92 - Removed BIO_s_log(), X509_PKEY_{new,free}(), PEM_X509_INFO_read()
93 and PEM_X509_INFO_write_bio().
94 - Re-expose the ASN.1 Boolean template items.
95 - opensslconf.h is now machine-independent.
96 * New features
97 - Allow specifying ALPN in nc(1) via -Talpn="http/1.1,http:/1.0".
98 * Bug fixes
99 - Avoid pointer arithmetic on NULL for memory BIOs.
100 - Fix leaks and use-after-frees in PKCS7 attribute handling.
101 - Ensure p and q in RSA private key have a minimum distance of
102 2^(bits/2 - 100) as specified in NIST SP 800-56B Revision 2.
103 * Security fixes
104 - Fix out-of-bounds read and write, memory leaks and incorrect
105 error check for CMS enveloped data.
106 * Documentation
107 - Rewrote most of the EC documentation from scratch to be at least
108 somewhat accurate and intelligible.
109 - Updated documentation for SMIME_{read,write}* to match reality.
110 * Testing and proactive security
111 - Added a testing framework that will help deduplicating lots of
112 ad-hoc code in the regression tests.
113 - Converted the Wycheproof testing framework to use testvectors_v1.
114 This in combination with a few new tests significantly increases
115 regress coverage.
116
1174.1.0 - Stable release
32 118
33 * Portable changes 119 * Portable changes
34 - Added initial Emscripten support in CMake builds 120 - Added initial experimental support for loongarch64.
121 - Fixed compilation for mips32 and reenable CI.
122 - Fixed CMake builds on FreeBSD.
123 - Fixed the --prefix option for cmake --install.
124 - Fixed tests for MinGW due to missing sh(1).
125 * Internal improvements
126 - Cleaned up the error implementation.
127 - Many bug fixes and simplifications in the EC ASN.1 code.
128 - Corrected DER encoding for EC keys and parameters.
129 - Polished EC_POINT_{oct2point,point2oct}() internals.
130 - Rewrote the wNAF code for fast ECDSA verification.
131 - Improved the code setting compressed coordinates for EC points.
132 - Reworked CPU capabilities detection for amd64 and aarch64.
133 - New SHA-1, SHA-256 and SHA-512 assembly implementations for amd64.
134 These make use of the SHA-NI instruction if it is available and
135 replace the perl-generated assembly optimized for museum pieces.
136 These are not yet enabled in libressl-portable.
137 - New SHA-256 and SHA-512 assembly implementations for aarch64
138 making use of the ARM Cryptographic Extension (CE). Not yet
139 enabled in libressl-portable.
140 - New simplified, readable MD5 implementation for amd64.
141 - Rewrote BN_bn2binpad() and its lebin siblings.
142 - The BIGNUMs in EC_GROUP and EC_POINT are now heap allocated.
143 - Rewrote TS_ASN1_INTEGER_print_bio().
144 - Improved bit counter handling in MD5.
145 - Simplified and cleaned up the BN_RECP_CTX internals.
146 - Improved SM4 to match other symmetric ciphers more closely.
147 - Rewrote X509_NAME_oneline() and X509_NAME_print() using CBS/CBB.
148 - CRLs are now cached in the issuer cache like certificates.
149 - Replaced combinations of BN_MONT_CTX_new/set with an internal
150 BN_MONT_CTX_create().
151 - Replaced BN_bn2hex() reimplementation in openssl(1) ca with
152 a proper API call.
153 - Fixed integer overflows due to signed shift in obj_dat.c.
154 - Improved some X509_VERIFY_PARAM internals and avoid an out of
155 bounds read from public API.
156 - Imported ML-KEM 768 and 1024 from BoringSSL (not yet public API).
157 * Compatibility changes
158 - Added an OPENSSL_INIT_NO_ATEXIT flag for OPENSSL_init_crypto().
159 It has no effect since LibreSSL doesn't call atexit().
160 - Elliptic curve parameters are only accepted if they encode a
161 built-in curve.
162 - EC_METHOD is no longer public and the API exposing it has been
163 removed. This includes EC_GROUP_new(), EC_GFp_mont_method(),
164 EC_GROUP_method_of() and EC_METHOD_get_field_type().
165 - The precomputation stubs for EC_GROUP were removed.
166 - The API setting Jacobian projective coordinates for a point was
167 removed as were EC_POINTs_{mul,make_affine}().
168 - All elliptic curves over fields with less than 224 bits and a
169 few more were removed from the built-in curves. This includes
170 all WTLS curves and P-192.
171 - It is no longer necessary to set RSA_FLAG_SIGN_VER to use the
172 sign and verify handlers set with RSA_meth_set_{sign,verify}.
173 - Removed the -C option to generate "C code" from the openssl(1)
174 dh, dhparam, dsaparam, ecparam, and x509 subcommands.
175 - Removed #error in headers when OPENSSL_NO_* is defined.
176 - CRYPTO_set_mem_functions() now matches OpenSSL 1.1 and
177 CRYPTO_set_mem_ex_functions() was removed.
178 - The tls_session_secret_cb_fn type now matches OpenSSL 1.1.
179 - Unexport X509_NAME_print() and X509_OBJECT_up_ref_count().
180 - const corrected UI_OpenSSL() and BN_MONT_CTX_copy().
181 - Support OPENSSL_NO_FILENAMES.
182 - Support SSL_OP_NO_RENEGOTIATION and SSL_OP_ALLOW_CLIENT_RENEGOTIATION.
183 - Export PKCS12_key_gen_uni() again.
184 * New features
185 - libtls has a new tls_peer_cert_common_name() API call to retrieve
186 the peer's common name without having to inspect the PEM.
187 * Bug fixes
188 - Plugged a leak in eckey_compute_pubkey().
189 - Again allow the magic values -1, -2 and -3 for the salt length
190 of an RSA-PSS key in the EVP_PKEY_CTX_ctrl_str() interface.
191 - Fixed a few memory leaks in legacy code.
192 * Documentation
193 - The remaining undocumented public EVP API is now documented.
194 - Reorganization of existing documentation for clarity and accuracy.
195 * Testing and proactive security
196 - Improved regress coverage of the EC code.
197
1984.0.0 - Stable release
199
200 * Portable changes
201 - Added initial Emscripten support in CMake builds.
35 - Removed timegm() compatibility layer since all uses were replaced 202 - Removed timegm() compatibility layer since all uses were replaced
36 with OPENSSL_timegm(). Cleaned up the corresponding test harness. 203 with OPENSSL_timegm(). Cleaned up the corresponding test harness.
204 - The mips32 platform is no longer actively supported.
205 - Fixed Windows support for dates beyond 2038.
37 * Internal improvements 206 * Internal improvements
38 - Cleaned up parts of the conf directory. Simplified some logic, 207 - Cleaned up parts of the conf directory. Simplified some logic,
39 fixed memory leaks. 208 fixed memory leaks.
@@ -66,29 +235,68 @@ LibreSSL Portable Release Notes:
66 - Made most error string tables const. 235 - Made most error string tables const.
67 - Removed handling for SSLv2 client hello messages. 236 - Removed handling for SSLv2 client hello messages.
68 - Improvements in the openssl(1) speed app's signal handler. 237 - Improvements in the openssl(1) speed app's signal handler.
69 - Added support for TLS PRF in the EVP KDF API. 238 - Cleaned up various X509v3_* extension API.
239 - Unified the X.509v3 extension methods.
240 - Cleaned up cipher handling in SSL_SESSION.
241 - Removed get_cipher from SSL_METHOD.
242 - Rewrote CRYPTO_EX_DATA from scratch. The only intentional change of
243 behavior is that there is now a hard limit on the number of indexes
244 that can be allocated.
245 - Removed bogus connect() call from netcat.
246 - Uses of atoi() and strtol() in libcrypto were replaced with
247 strtonum().
248 - Introduced crypto_arch.h which will contain the architecture
249 dependent code and defines rather than the public opensslconf.h.
250 - OPENSSL_cpu_caps() is now architecture independent.
251 - Reorganized the DES implementation to use fewer files and removed
252 optimizations for ancient processors and compilers.
253 * New features
254 - Added CRLfile option to the cms command of openssl(1) to specify
255 additional CRLs for use during verification.
70 * Documentation improvements 256 * Documentation improvements
71 - Removed documentation of no longer existing API. 257 - Removed documentation of no longer existing API.
258 - Unified the description of the obsolete ENGINE parameter that
259 needs to remain in many functions and should always be NULL.
72 * Testing and proactive security 260 * Testing and proactive security
73 - Switched the remaining tests to new certs. 261 - Switched the remaining tests to new certs.
74 * Compatibility changes 262 * Compatibility changes
263 - Protocol parsing in libtls was changed. The unsupported TLSv1.1
264 and TLSv1.0 protocols are ignored and no longer enable or disable
265 TLSv1.2 in surprising ways.
266 - The dangerous EVP_PKEY*_check(3) family of functions was removed.
267 The openssl(1) pkey and pkeyparam commands no longer support the
268 -check and -pubcheck flags.
75 - The one-step hashing functions, MD4(), MD5(), RIPEMD160(), SHA1(), 269 - The one-step hashing functions, MD4(), MD5(), RIPEMD160(), SHA1(),
76 all SHA-2, and HMAC() no longer support returning a static buffer. 270 all SHA-2, and HMAC() no longer support returning a static buffer.
77 Callers must pass in a correctly sized buffer. 271 Callers must pass in a correctly sized buffer.
272 - Support for Whirlpool was removed. Applications still using this
273 should honor OPENSSL_NO_WHIRLPOOL.
78 - Removed workaround for F5 middle boxes. 274 - Removed workaround for F5 middle boxes.
79 - Removed the useless pem2.h, a public header that was added since 275 - Removed the useless pem2.h, a public header that was added since
80 it was too hard to add a prototype to one file. 276 it was too hard to add a single prototype to one file.
277 - Removed conf_api.h and the public API therein.
278 - Removed ssl2.h, ssl23.h and ui_compat.h.
279 - Numerous conf and attribute functions were removed. Some unused
280 types were removed, others were made opaque.
281 - Removed the deprecated HMAC_Init() function.
282 - Removed OPENSSL_load_builtin_modules().
283 - Removed X509_REQ_{get,set}_extension_nids().
284 - X509_check_trust() and was removed, X509_VAL was made opaque.
81 - Only specified versions can be set on certs, CRLs and CSRs. 285 - Only specified versions can be set on certs, CRLs and CSRs.
82 - Prepared X509_REQ_{get,set}_extension_nids() for removal.
83 - Removed unused PEM_USER and PEM_CTX types from pem.h. 286 - Removed unused PEM_USER and PEM_CTX types from pem.h.
84 - Removed typdefs for COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE, 287 - Removed typdefs for COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE,
85 STORE_METHOD, and SSL_AEAD_CTX. 288 STORE_METHOD, and SSL_AEAD_CTX.
86 - i2d_ASN1_OBJECT() now returns -1 on error like most other i2d_*. 289 - i2d_ASN1_OBJECT() now returns -1 on error like most other i2d_*.
87 - SPKAC support was removed from openssl(1) 290 - SPKAC support was removed from openssl(1).
88 - Added TLS1-PRF support to the EVP interface. 291 - Added TLS1-PRF support to the EVP interface.
89 - Cleaned up various X509v3_* extension API. 292 - Support for attributes in EVP_PKEYs was removed.
90 - Unified the X.509v3 extension methods. 293 - The X509at_* API is no longer public.
91 - Removed ssl2.h and ssl23.h. 294 - SSL_CTX_set1_cert_store() and SSL_CIPHER_get_handshake_digest()
295 were added to libssl.
296 - The completely broken UI_UTIL password API was removed.
297 - The OpenSSL pkcs12 command and PKCS12_create() no longer support
298 setting the Microsoft-specific Local Key Set and Cryptographic
299 Service Provider attributes.
92 * Bug fixes 300 * Bug fixes
93 - Made ASN1_TIME_set_string() and ASN1_TIME_set_string_X509() match 301 - Made ASN1_TIME_set_string() and ASN1_TIME_set_string_X509() match
94 their documentation. They always set an RFC 5280 conformant time. 302 their documentation. They always set an RFC 5280 conformant time.
@@ -115,6 +323,20 @@ LibreSSL Portable Release Notes:
115 ALPN callback. 323 ALPN callback.
116 - Avoid pushing a spurious error onto the error stack in 324 - Avoid pushing a spurious error onto the error stack in
117 ssl_sigalg_select(). 325 ssl_sigalg_select().
326 - Made fatal alerts fatal in QUIC.
327
3283.9.2 - Stable release
329
330 * Bugfixes
331 - OpenBSD 7.5 errata 003. A missing bounds check could lead to a crash
332 due to dereferencing a zero-sized allocation.
333
3343.9.1 - Stable release
335
336 * Portable changes
337 - Updated tests with expiring certificates
338 - CET-related build fixes for Windows and macOS targets
339 - update libtls linker script to include libssl and libcrypto again
118 340
1193.9.0 - Development release 3413.9.0 - Development release
120 342
@@ -193,6 +415,13 @@ LibreSSL Portable Release Notes:
193 stack. 415 stack.
194 - Made in-place decryption work for EVP_chacha20_poly1305(). 416 - Made in-place decryption work for EVP_chacha20_poly1305().
195 417
4183.8.4 - Stable release
419
420 * Portable changes
421 - Updated tests with expiring certificates
422 - CET-related build fixes for Windows and macOS targets
423 - update libtls linker script to include libssl and libcrypto again
424
1963.8.3 - Stable release 4253.8.3 - Stable release
197 426
198 * Portable changes 427 * Portable changes