diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 163 |
1 files changed, 153 insertions, 10 deletions
@@ -1,7 +1,7 @@ | |||
1 | Because this project is maintained both in the OpenBSD tree using CVS and in | 1 | Because this project is maintained both in the OpenBSD tree using CVS and in |
2 | Git, it can be confusing following all of the changes. | 2 | Git, it can be confusing following all of the changes. |
3 | 3 | ||
4 | Most of the libssl and libcrypto source code is is here in OpenBSD CVS: | 4 | Most 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,95 @@ history is also available from Git. | |||
28 | 28 | ||
29 | LibreSSL Portable Release Notes: | 29 | LibreSSL Portable Release Notes: |
30 | 30 | ||
31 | 4.0.0 - In development | 31 | 4.1.0 - In development |
32 | 32 | ||
33 | * Portable changes | 33 | * Portable changes |
34 | - Added initial Emscripten support in CMake builds | 34 | - Added initial experimental support for loongarch64. |
35 | - Fixed compilation for mips32 and reenable CI. | ||
36 | - Fixed CMake builds on FreeBSD. | ||
37 | - Fixed the --prefix option for cmake --install. | ||
38 | - Fixed tests for MinGW due to missing sh(1). | ||
39 | * Internal improvements | ||
40 | - Cleaned up the error implementation. | ||
41 | - Many bug fixes and simplifications in the EC ASN.1 code. | ||
42 | - Corrected DER encoding for EC keys and parameters. | ||
43 | - Polished EC_POINT_{oct2point,point2oct}() internals. | ||
44 | - Rewrote the wNAF code for fast ECDSA verification. | ||
45 | - Improved the code setting compressed coordinates for EC points. | ||
46 | - Reworked CPU capabilities detection for amd64 and aarch64. | ||
47 | - New SHA-1, SHA-256 and SHA-512 assembly implementations for amd64. | ||
48 | These make use of the SHA-NI instruction if it is available and | ||
49 | replace the perl-generated assembly optimized for museum pieces. | ||
50 | These are not yet enabled in libressl-portable. | ||
51 | - New SHA-256 and SHA-512 assembly implementations for aarch64 | ||
52 | making use of the ARM Cryptographic Extension (CE). Not yet | ||
53 | enabled in libressl-portable. | ||
54 | - New simplified, readable MD5 implementation for amd64. | ||
55 | - Rewrote BN_bn2binpad() and its lebin siblings. | ||
56 | - The BIGNUMs in EC_GROUP and EC_POINT are now heap allocated. | ||
57 | - Rewrote TS_ASN1_INTEGER_print_bio(). | ||
58 | - Improved bit counter handling in MD5. | ||
59 | - Simplified and cleaned up the BN_RECP_CTX internals. | ||
60 | - Improved SM4 to match other symmetric ciphers more closely. | ||
61 | - Rewrote X509_NAME_oneline() and X509_NAME_print() using CBS/CBB. | ||
62 | - CRLs are now cached in the issuer cache like certificates. | ||
63 | - Replaced combinations of BN_MONT_CTX_new/set with an internal | ||
64 | BN_MONT_CTX_create(). | ||
65 | - Replaced BN_bn2hex() reimplementation in openssl(1) ca with | ||
66 | a poper API call. | ||
67 | - Fixed integer overflows due to signed shift in obj_dat.c. | ||
68 | - Fixed a few memory leaks in legacy code. | ||
69 | - Improved some X509_VERIFY_PARAM internals and avoid an out of | ||
70 | bounds read from public API. | ||
71 | - Imported ML-KEM 768 and 1024 from BoringSSL (not yet public API). | ||
72 | * Compatibility changes | ||
73 | - Added an OPENSSL_INIT_NO_ATEXIT flag for OPENSSL_init_crypto(). | ||
74 | It has no effect since LibreSSL doesn't call atexit(). | ||
75 | - Elliptic curve parameters are only accepted if they encode a | ||
76 | built-in curve. | ||
77 | - EC_METHOD is no longer public and the API exposing it has been | ||
78 | removed. This includes EC_GROUP_new(), EC_GFp_mont_method(), | ||
79 | EC_GROUP_method_of() and EC_METHOD_get_field_type(). | ||
80 | - The precomputation stubs for EC_GROUP were removed. | ||
81 | - The API setting Jacobian projective coordinates for a point was | ||
82 | removed as were EC_POINTs_{mul,make_affine}(). | ||
83 | - All elliptic curves over fields with less than 224 bits and a | ||
84 | few more were removed from the built-in curves. This includes | ||
85 | all WTLS curves and P-192. | ||
86 | - It is no longer necessary to set RSA_FLAG_SIGN_VER to use the | ||
87 | sign and verify handlers set with RSA_meth_set_{sign,verify}. | ||
88 | - Removed the -C option to generate "C code" from the openssl(1) | ||
89 | dh, dhparam, dsaparam, ecparam, and x509 subcommands. | ||
90 | - Removed #error in headers when OPENSSL_NO_* is defined. | ||
91 | - CRYPTO_set_mem_functions() now matches OpenSSL 1.1 and | ||
92 | CRYPTO_set_mem_ex_functions() was removed. | ||
93 | - The tls_session_secret_cb_fn type now matches OpenSSL 1.1. | ||
94 | - Unexport X509_NAME_print() and X509_OBJECT_up_ref_count(). | ||
95 | - const corrected UI_OpenSSL() and BN_MONT_CTX_copy(). | ||
96 | - Support OPENSSL_NO_FILENAMES. | ||
97 | - Support SSL_OP_NO_RENEGOTIATION and SSL_OP_ALLOW_CLIENT_RENEGOTIATION. | ||
98 | - Export PKCS12_key_gen_uni() again. | ||
99 | * New features | ||
100 | - libtls has a new tls_peer_cert_common_name() API call to retrieve | ||
101 | the peer's common name without having to inspect the PEM. | ||
102 | * Bug fixes | ||
103 | - Plugged a leak in eckey_compute_pubkey(). | ||
104 | - Again allow the magic values -1, -2 and -3 for the salt length | ||
105 | of an RSA-PSS key in the EVP_PKEY_CTX_ctrl_str() interface. | ||
106 | * Documentation | ||
107 | - The remaining undocumented public EVP API is now documented. | ||
108 | Reorganization of existing documentation for clarity and accuracy. | ||
109 | * Testing and proactive security | ||
110 | - Improved regress coverage of the EC code. | ||
111 | |||
112 | 4.0.0 - Stable release | ||
113 | |||
114 | * Portable changes | ||
115 | - Added initial Emscripten support in CMake builds. | ||
35 | - Removed timegm() compatibility layer since all uses were replaced | 116 | - Removed timegm() compatibility layer since all uses were replaced |
36 | with OPENSSL_timegm(). Cleaned up the corresponding test harness. | 117 | with OPENSSL_timegm(). Cleaned up the corresponding test harness. |
118 | - The mips32 platform is no longer actively supported. | ||
119 | - Fixed Windows support for dates beyond 2038. | ||
37 | * Internal improvements | 120 | * Internal improvements |
38 | - Cleaned up parts of the conf directory. Simplified some logic, | 121 | - Cleaned up parts of the conf directory. Simplified some logic, |
39 | fixed memory leaks. | 122 | fixed memory leaks. |
@@ -66,29 +149,68 @@ LibreSSL Portable Release Notes: | |||
66 | - Made most error string tables const. | 149 | - Made most error string tables const. |
67 | - Removed handling for SSLv2 client hello messages. | 150 | - Removed handling for SSLv2 client hello messages. |
68 | - Improvements in the openssl(1) speed app's signal handler. | 151 | - Improvements in the openssl(1) speed app's signal handler. |
69 | - Added support for TLS PRF in the EVP KDF API. | 152 | - Cleaned up various X509v3_* extension API. |
153 | - Unified the X.509v3 extension methods. | ||
154 | - Cleaned up cipher handling in SSL_SESSION. | ||
155 | - Removed get_cipher from SSL_METHOD. | ||
156 | - Rewrote CRYPTO_EX_DATA from scratch. The only intentional change of | ||
157 | behavior is that there is now a hard limit on the number of indexes | ||
158 | that can be allocated. | ||
159 | - Removed bogus connect() call from netcat. | ||
160 | - Uses of atoi() and strtol() in libcrypto were replaced with | ||
161 | strtonum(). | ||
162 | - Introduced crypto_arch.h which will contain the architecture | ||
163 | dependent code and defines rather than the public opensslconf.h. | ||
164 | - OPENSSL_cpu_caps() is now architecture independent. | ||
165 | - Reorganized the DES implementation to use fewer files and removed | ||
166 | optimizations for ancient processors and compilers. | ||
167 | * New features | ||
168 | - Added CRLfile option to the cms command of openssl(1) to specify | ||
169 | additional CRLs for use during verification. | ||
70 | * Documentation improvements | 170 | * Documentation improvements |
71 | - Removed documentation of no longer existing API. | 171 | - Removed documentation of no longer existing API. |
172 | - Unified the description of the obsolete ENGINE parameter that | ||
173 | needs to remain in many functions and should always be NULL. | ||
72 | * Testing and proactive security | 174 | * Testing and proactive security |
73 | - Switched the remaining tests to new certs. | 175 | - Switched the remaining tests to new certs. |
74 | * Compatibility changes | 176 | * Compatibility changes |
177 | - Protocol parsing in libtls was changed. The unsupported TLSv1.1 | ||
178 | and TLSv1.0 protocols are ignored and no longer enable or disable | ||
179 | TLSv1.2 in surprising ways. | ||
180 | - The dangerous EVP_PKEY*_check(3) family of functions was removed. | ||
181 | The openssl(1) pkey and pkeyparam commands no longer support the | ||
182 | -check and -pubcheck flags. | ||
75 | - The one-step hashing functions, MD4(), MD5(), RIPEMD160(), SHA1(), | 183 | - The one-step hashing functions, MD4(), MD5(), RIPEMD160(), SHA1(), |
76 | all SHA-2, and HMAC() no longer support returning a static buffer. | 184 | all SHA-2, and HMAC() no longer support returning a static buffer. |
77 | Callers must pass in a correctly sized buffer. | 185 | Callers must pass in a correctly sized buffer. |
186 | - Support for Whirlpool was removed. Applications still using this | ||
187 | should honor OPENSSL_NO_WHIRLPOOL. | ||
78 | - Removed workaround for F5 middle boxes. | 188 | - Removed workaround for F5 middle boxes. |
79 | - Removed the useless pem2.h, a public header that was added since | 189 | - Removed the useless pem2.h, a public header that was added since |
80 | it was too hard to add a prototype to one file. | 190 | it was too hard to add a single prototype to one file. |
191 | - Removed conf_api.h and the public API therein. | ||
192 | - Removed ssl2.h, ssl23.h and ui_compat.h. | ||
193 | - Numerous conf and attribute functions were removed. Some unused | ||
194 | types were removed, others were made opaque. | ||
195 | - Removed the deprecated HMAC_Init() function. | ||
196 | - Removed OPENSSL_load_builtin_modules(). | ||
197 | - Removed X509_REQ_{get,set}_extension_nids(). | ||
198 | - X509_check_trust() and was removed, X509_VAL was made opaque. | ||
81 | - Only specified versions can be set on certs, CRLs and CSRs. | 199 | - 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. | 200 | - Removed unused PEM_USER and PEM_CTX types from pem.h. |
84 | - Removed typdefs for COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE, | 201 | - Removed typdefs for COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE, |
85 | STORE_METHOD, and SSL_AEAD_CTX. | 202 | STORE_METHOD, and SSL_AEAD_CTX. |
86 | - i2d_ASN1_OBJECT() now returns -1 on error like most other i2d_*. | 203 | - i2d_ASN1_OBJECT() now returns -1 on error like most other i2d_*. |
87 | - SPKAC support was removed from openssl(1) | 204 | - SPKAC support was removed from openssl(1). |
88 | - Added TLS1-PRF support to the EVP interface. | 205 | - Added TLS1-PRF support to the EVP interface. |
89 | - Cleaned up various X509v3_* extension API. | 206 | - Support for attributes in EVP_PKEYs was removed. |
90 | - Unified the X.509v3 extension methods. | 207 | - The X509at_* API is no longer public. |
91 | - Removed ssl2.h and ssl23.h. | 208 | - SSL_CTX_set1_cert_store() and SSL_CIPHER_get_handshake_digest() |
209 | were added to libssl. | ||
210 | - The completely broken UI_UTIL password API was removed. | ||
211 | - The OpenSSL pkcs12 command and PKCS12_create() no longer support | ||
212 | setting the Microsoft-specific Local Key Set and Cryptographic | ||
213 | Service Provider attributes. | ||
92 | * Bug fixes | 214 | * Bug fixes |
93 | - Made ASN1_TIME_set_string() and ASN1_TIME_set_string_X509() match | 215 | - Made ASN1_TIME_set_string() and ASN1_TIME_set_string_X509() match |
94 | their documentation. They always set an RFC 5280 conformant time. | 216 | their documentation. They always set an RFC 5280 conformant time. |
@@ -115,6 +237,20 @@ LibreSSL Portable Release Notes: | |||
115 | ALPN callback. | 237 | ALPN callback. |
116 | - Avoid pushing a spurious error onto the error stack in | 238 | - Avoid pushing a spurious error onto the error stack in |
117 | ssl_sigalg_select(). | 239 | ssl_sigalg_select(). |
240 | - Made fatal alerts fatal in QUIC. | ||
241 | |||
242 | 3.9.2 - Stable release | ||
243 | |||
244 | * Bugfixes | ||
245 | - OpenBSD 7.5 errata 003. A missing bounds check could lead to a crash | ||
246 | due to dereferencing a zero-sized allocation. | ||
247 | |||
248 | 3.9.1 - Stable release | ||
249 | |||
250 | * Portable changes | ||
251 | - Updated tests with expiring certificates | ||
252 | - CET-related build fixes for Windows and macOS targets | ||
253 | - update libtls linker script to include libssl and libcrypto again | ||
118 | 254 | ||
119 | 3.9.0 - Development release | 255 | 3.9.0 - Development release |
120 | 256 | ||
@@ -193,6 +329,13 @@ LibreSSL Portable Release Notes: | |||
193 | stack. | 329 | stack. |
194 | - Made in-place decryption work for EVP_chacha20_poly1305(). | 330 | - Made in-place decryption work for EVP_chacha20_poly1305(). |
195 | 331 | ||
332 | 3.8.4 - Stable release | ||
333 | |||
334 | * Portable changes | ||
335 | - Updated tests with expiring certificates | ||
336 | - CET-related build fixes for Windows and macOS targets | ||
337 | - update libtls linker script to include libssl and libcrypto again | ||
338 | |||
196 | 3.8.3 - Stable release | 339 | 3.8.3 - Stable release |
197 | 340 | ||
198 | * Portable changes | 341 | * Portable changes |