]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Add CHANGES entry.
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
7d3ba88a 5 Changes between 1.0.2 and 1.1.0 [xx XXX xxxx]
6668b6b8
DSH
6
7 *) Added support for TLS extended master secret from
8 draft-ietf-tls-session-hash-03.txt. Thanks for Alfredo Pironti for an
9 initial patch which was a great help during development.
10 [Steve Henson]
11
78cc1f03
MC
12 *) All libssl internal structures have been removed from the public header
13 files, and the OPENSSL_NO_SSL_INTERN option has been removed (since it is
14 now redundant). Users should not attempt to access internal structures
15 directly. Instead they should use the provided API functions.
16 [Matt Caswell]
785da0e6 17
bd2bd374
MC
18 *) config has been changed so that by default OPENSSL_NO_DEPRECATED is used.
19 Access to deprecated functions can be re-enabled by running config with
20 "enable-deprecated". In addition applications wishing to use deprecated
21 functions must define OPENSSL_USE_DEPRECATED. Note that this new behaviour
22 will, by default, disable some transitive includes that previously existed
23 in the header files (e.g. ec.h will no longer, by default, include bn.h)
24 [Matt Caswell]
25
0c1bd7f0
MC
26 *) Added support for OCB mode. OpenSSL has been granted a patent license
27 compatible with the OpenSSL license for use of OCB. Details are available
28 at https://www.openssl.org/docs/misc/OCB-patent-grant-OpenSSL.pdf. Support
29 for OCB can be removed by calling config with no-ocb.
bd2bd374 30 [Matt Caswell]
0c1bd7f0 31
12478cc4
KR
32 *) SSLv2 support has been removed. It still supports receiving a SSLv2
33 compatible client hello.
34 [Kurt Roeckx]
35
c56a50b2
AY
36 *) Increased the minimal RSA keysize from 256 to 512 bits [Rich Salz],
37 done while fixing the error code for the key-too-small case.
38 [Annie Yousar <a.yousar@informatik.hu-berlin.de>]
39
24956ca0
RS
40 *) Removed old DES API.
41 [Rich Salz]
42
59ff1ce0
RS
43 *) Remove various unsupported platforms:
44 Sony NEWS4
e03b2987
RS
45 BEOS and BEOS_R5
46 NeXT
f2319414 47 SUNOS
5ad4fdce 48 MPE/iX
6c23ca0c 49 Sinix/ReliantUNIX RM400
32dfde10 50 DGUX
fcf64ba0
RS
51 NCR
52 Tandem
53 Cray
04f8bcf1 54 16-bit platforms such as WIN16
b317819b
RS
55 [Rich Salz]
56
4b618848
RS
57 *) Start cleaning up OPENSSL_NO_xxx #define's
58 OPENSSL_NO_RIPEMD160, OPENSSL_NO_RIPEMD merged into OPENSSL_NO_RMD160
59 OPENSSL_NO_FP_API merged into OPENSSL_NO_STDIO
27c7609c 60 Use setbuf() and remove OPENSSL_NO_SETVBUF_IONBF
68b00c23
RS
61 Rename OPENSSL_SYSNAME_xxx to OPENSSL_SYS_xxx
62 Remove MS_STATIC; it's a relic from platforms <32 bits.
4b618848
RS
63 [Rich Salz]
64
a2b18e65
RS
65 *) Start cleaning up dead code
66 Remove all but one '#ifdef undef' which is to be looked at.
67 [Rich Salz]
68
5fc3a5fe
BL
69 *) Experimental support for a new, fast, unbiased prime candidate generator,
70 bn_probable_prime_dh_coprime(). Not currently used by any prime generator.
71 [Felix Laurie von Massenbach <felix@erbridge.co.uk>]
72
189ae368
MK
73 *) New output format NSS in the sess_id command line tool. This allows
74 exporting the session id and the master key in NSS keylog format.
75 [Martin Kaiser <martin@kaiser.cx>]
76
8acb9538 77 *) Harmonize version and its documentation. -f flag is used to display
78 compilation flags.
79 [mancha <mancha1@zoho.com>]
80
e14f14d3 81 *) Fix eckey_priv_encode so it immediately returns an error upon a failure
82 in i2d_ECPrivateKey.
83 [mancha <mancha1@zoho.com>]
84
4ba5e63b
BL
85 *) Fix some double frees. These are not thought to be exploitable.
86 [mancha <mancha1@zoho.com>]
87
731f4314
DSH
88 *) A missing bounds check in the handling of the TLS heartbeat extension
89 can be used to reveal up to 64k of memory to a connected client or
90 server.
91
92 Thanks for Neel Mehta of Google Security for discovering this bug and to
93 Adam Langley <agl@chromium.org> and Bodo Moeller <bmoeller@acm.org> for
94 preparing the fix (CVE-2014-0160)
95 [Adam Langley, Bodo Moeller]
96
f9b6c0ba
DSH
97 *) Fix for the attack described in the paper "Recovering OpenSSL
98 ECDSA Nonces Using the FLUSH+RELOAD Cache Side-channel Attack"
99 by Yuval Yarom and Naomi Benger. Details can be obtained from:
100 http://eprint.iacr.org/2014/140
101
102 Thanks to Yuval Yarom and Naomi Benger for discovering this
103 flaw and to Yuval Yarom for supplying a fix (CVE-2014-0076)
104 [Yuval Yarom and Naomi Benger]
105
a4339ea3 106 *) Use algorithm specific chains in SSL_CTX_use_certificate_chain_file():
14e96192 107 this fixes a limitation in previous versions of OpenSSL.
a4339ea3
DSH
108 [Steve Henson]
109
5e3ff62c
DSH
110 *) Experimental encrypt-then-mac support.
111
112 Experimental support for encrypt then mac from
113 draft-gutmann-tls-encrypt-then-mac-02.txt
a6e7d1c0 114
5fdeb58c
DSH
115 To enable it set the appropriate extension number (0x42 for the test
116 server) using e.g. -DTLSEXT_TYPE_encrypt_then_mac=0x42
a6e7d1c0 117
5e3ff62c
DSH
118 For non-compliant peers (i.e. just about everything) this should have no
119 effect.
120
121 WARNING: EXPERIMENTAL, SUBJECT TO CHANGE.
a6e7d1c0 122
5e3ff62c
DSH
123 [Steve Henson]
124
97cf1f6c
DSH
125 *) Add EVP support for key wrapping algorithms, to avoid problems with
126 existing code the flag EVP_CIPHER_CTX_WRAP_ALLOW has to be set in
127 the EVP_CIPHER_CTX or an error is returned. Add AES and DES3 wrap
128 algorithms and include tests cases.
129 [Steve Henson]
130
5c84d2f5
DSH
131 *) Extend CMS code to support RSA-PSS signatures and RSA-OAEP for
132 enveloped data.
133 [Steve Henson]
134
271fef0e
DSH
135 *) Extended RSA OAEP support via EVP_PKEY API. Options to specify digest,
136 MGF1 digest and OAEP label.
137 [Steve Henson]
138
fefc111a
BL
139 *) Make openssl verify return errors.
140 [Chris Palmer <palmer@google.com> and Ben Laurie]
141
1c455bc0
DSH
142 *) New function ASN1_TIME_diff to calculate the difference between two
143 ASN1_TIME structures or one structure and the current time.
144 [Steve Henson]
145
a98b8ce6
DSH
146 *) Update fips_test_suite to support multiple command line options. New
147 test to induce all self test errors in sequence and check expected
148 failures.
149 [Steve Henson]
150
f4324e51
DSH
151 *) Add FIPS_{rsa,dsa,ecdsa}_{sign,verify} functions which digest and
152 sign or verify all in one operation.
153 [Steve Henson]
154
14e96192 155 *) Add fips_algvs: a multicall fips utility incorporating all the algorithm
3ec9dceb
DSH
156 test programs and fips_test_suite. Includes functionality to parse
157 the minimal script output of fipsalgest.pl directly.
f4324e51 158 [Steve Henson]
3ec9dceb 159
5e4eb995
DSH
160 *) Add authorisation parameter to FIPS_module_mode_set().
161 [Steve Henson]
162
2bfeb7dc
DSH
163 *) Add FIPS selftest for ECDH algorithm using P-224 and B-233 curves.
164 [Steve Henson]
165
4420b3b1 166 *) Use separate DRBG fields for internal and external flags. New function
cb71870d
DSH
167 FIPS_drbg_health_check() to perform on demand health checking. Add
168 generation tests to fips_test_suite with reduced health check interval to
4420b3b1
DSH
169 demonstrate periodic health checking. Add "nodh" option to
170 fips_test_suite to skip very slow DH test.
171 [Steve Henson]
172
15094852
DSH
173 *) New function FIPS_get_cipherbynid() to lookup FIPS supported ciphers
174 based on NID.
175 [Steve Henson]
176
a11f06b2
DSH
177 *) More extensive health check for DRBG checking many more failure modes.
178 New function FIPS_selftest_drbg_all() to handle every possible DRBG
179 combination: call this in fips_test_suite.
180 [Steve Henson]
181
7fdcb457
DSH
182 *) Add support for Dual EC DRBG from SP800-90. Update DRBG algorithm test
183 and POST to handle Dual EC cases.
184 [Steve Henson]
185
f55f5f77
DSH
186 *) Add support for canonical generation of DSA parameter 'g'. See
187 FIPS 186-3 A.2.3.
188
7fdcb457
DSH
189 *) Add support for HMAC DRBG from SP800-90. Update DRBG algorithm test and
190 POST to handle HMAC cases.
20f12e63
DSH
191 [Steve Henson]
192
01a9a759 193 *) Add functions FIPS_module_version() and FIPS_module_version_text()
3d7bf77f 194 to return numerical and string versions of the FIPS module number.
01a9a759
DSH
195 [Steve Henson]
196
c2fd5989 197 *) Rename FIPS_mode_set and FIPS_mode to FIPS_module_mode_set and
3d7bf77f 198 FIPS_module_mode. FIPS_mode and FIPS_mode_set will be implemented
c2fd5989
DSH
199 outside the validated module in the FIPS capable OpenSSL.
200 [Steve Henson]
201
e0d1a2f8 202 *) Minor change to DRBG entropy callback semantics. In some cases
3d7bf77f 203 there is no multiple of the block length between min_len and
e0d1a2f8
DSH
204 max_len. Allow the callback to return more than max_len bytes
205 of entropy but discard any extra: it is the callback's responsibility
206 to ensure that the extra data discarded does not impact the
207 requested amount of entropy.
208 [Steve Henson]
209
cac4fb58
DSH
210 *) Add PRNG security strength checks to RSA, DSA and ECDSA using
211 information in FIPS186-3, SP800-57 and SP800-131A.
212 [Steve Henson]
213
b5dd1787
DSH
214 *) CCM support via EVP. Interface is very similar to GCM case except we
215 must supply all data in one chunk (i.e. no update, final) and the
216 message length must be supplied if AAD is used. Add algorithm test
217 support.
23916810
DSH
218 [Steve Henson]
219
ac892b7a
DSH
220 *) Initial version of POST overhaul. Add POST callback to allow the status
221 of POST to be monitored and/or failures induced. Modify fips_test_suite
222 to use callback. Always run all selftests even if one fails.
223 [Steve Henson]
224
06b7e5a0
DSH
225 *) XTS support including algorithm test driver in the fips_gcmtest program.
226 Note: this does increase the maximum key length from 32 to 64 bytes but
227 there should be no binary compatibility issues as existing applications
228 will never use XTS mode.
32a2d8dd
DSH
229 [Steve Henson]
230
05e24c87
DSH
231 *) Extensive reorganisation of FIPS PRNG behaviour. Remove all dependencies
232 to OpenSSL RAND code and replace with a tiny FIPS RAND API which also
233 performs algorithm blocking for unapproved PRNG types. Also do not
234 set PRNG type in FIPS_mode_set(): leave this to the application.
235 Add default OpenSSL DRBG handling: sets up FIPS PRNG and seeds with
d7a3ce98 236 the standard OpenSSL PRNG: set additional data to a date time vector.
05e24c87
DSH
237 [Steve Henson]
238
cab0595c
DSH
239 *) Rename old X9.31 PRNG functions of the form FIPS_rand* to FIPS_x931*.
240 This shouldn't present any incompatibility problems because applications
241 shouldn't be using these directly and any that are will need to rethink
242 anyway as the X9.31 PRNG is now deprecated by FIPS 140-2
243 [Steve Henson]
244
96ec46f7
DSH
245 *) Extensive self tests and health checking required by SP800-90 DRBG.
246 Remove strength parameter from FIPS_drbg_instantiate and always
247 instantiate at maximum supported strength.
248 [Steve Henson]
249
8857b380
DSH
250 *) Add ECDH code to fips module and fips_ecdhvs for primitives only testing.
251 [Steve Henson]
252
11e80de3
DSH
253 *) New algorithm test program fips_dhvs to handle DH primitives only testing.
254 [Steve Henson]
255
256 *) New function DH_compute_key_padded() to compute a DH key and pad with
257 leading zeroes if needed: this complies with SP800-56A et al.
258 [Steve Henson]
259
591cbfae
DSH
260 *) Initial implementation of SP800-90 DRBGs for Hash and CTR. Not used by
261 anything, incomplete, subject to change and largely untested at present.
262 [Steve Henson]
263
eead69f5
DSH
264 *) Modify fipscanisteronly build option to only build the necessary object
265 files by filtering FIPS_EX_OBJ through a perl script in crypto/Makefile.
266 [Steve Henson]
267
017bc57b
DSH
268 *) Add experimental option FIPSSYMS to give all symbols in
269 fipscanister.o and FIPS or fips prefix. This will avoid
5d439d69
DSH
270 conflicts with future versions of OpenSSL. Add perl script
271 util/fipsas.pl to preprocess assembly language source files
272 and rename any affected symbols.
017bc57b
DSH
273 [Steve Henson]
274
25c65429
DSH
275 *) Add selftest checks and algorithm block of non-fips algorithms in
276 FIPS mode. Remove DES2 from selftests.
277 [Steve Henson]
278
fe26d066
DSH
279 *) Add ECDSA code to fips module. Add tiny fips_ecdsa_check to just
280 return internal method without any ENGINE dependencies. Add new
25c65429 281 tiny fips sign and verify functions.
fe26d066
DSH
282 [Steve Henson]
283
b3310161
DSH
284 *) New build option no-ec2m to disable characteristic 2 code.
285 [Steve Henson]
286
30b56225
DSH
287 *) New build option "fipscanisteronly". This only builds fipscanister.o
288 and (currently) associated fips utilities. Uses the file Makefile.fips
289 instead of Makefile.org as the prototype.
290 [Steve Henson]
291
b3d8022e
DSH
292 *) Add some FIPS mode restrictions to GCM. Add internal IV generator.
293 Update fips_gcmtest to use IV generator.
294 [Steve Henson]
295
bdaa5415
DSH
296 *) Initial, experimental EVP support for AES-GCM. AAD can be input by
297 setting output buffer to NULL. The *Final function must be
298 called although it will not retrieve any additional data. The tag
299 can be set or retrieved with a ctrl. The IV length is by default 12
300 bytes (96 bits) but can be set to an alternative value. If the IV
301 length exceeds the maximum IV length (currently 16 bytes) it cannot be
302 set before the key.
303 [Steve Henson]
304
3da0ca79
DSH
305 *) New flag in ciphers: EVP_CIPH_FLAG_CUSTOM_CIPHER. This means the
306 underlying do_cipher function handles all cipher semantics itself
307 including padding and finalisation. This is useful if (for example)
308 an ENGINE cipher handles block padding itself. The behaviour of
309 do_cipher is subtly changed if this flag is set: the return value
310 is the number of characters written to the output buffer (zero is
311 no longer an error code) or a negative error code. Also if the
d45087c6 312 input buffer is NULL and length 0 finalisation should be performed.
3da0ca79
DSH
313 [Steve Henson]
314
2b3936e8
DSH
315 *) If a candidate issuer certificate is already part of the constructed
316 path ignore it: new debug notification X509_V_ERR_PATH_LOOP for this case.
317 [Steve Henson]
318
7c2d4fee
BM
319 *) Improve forward-security support: add functions
320
321 void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, int (*cb)(SSL *ssl, int is_forward_secure))
322 void SSL_set_not_resumable_session_callback(SSL *ssl, int (*cb)(SSL *ssl, int is_forward_secure))
323
324 for use by SSL/TLS servers; the callback function will be called whenever a
325 new session is created, and gets to decide whether the session may be
326 cached to make it resumable (return 0) or not (return 1). (As by the
327 SSL/TLS protocol specifications, the session_id sent by the server will be
328 empty to indicate that the session is not resumable; also, the server will
329 not generate RFC 4507 (RFC 5077) session tickets.)
330
331 A simple reasonable callback implementation is to return is_forward_secure.
332 This parameter will be set to 1 or 0 depending on the ciphersuite selected
333 by the SSL/TLS server library, indicating whether it can provide forward
334 security.
335