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