]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Ready for 0.9.8c release
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
0a0a10d1 5 Changes between 0.9.8b and 0.9.8c [05 Sep 2006]
1c5dc844 6
df20b6e7
MC
7 *) Avoid PKCS #1 v1.5 signature attack discovered by Daniel Bleichenbacher
8 (CVE-2006-4339) [Ben Laurie and Google Security Team]
9
4b9dcd82
BL
10 *) Add AES IGE and biIGE modes.
11 [Ben Laurie]
12
ec67e3b7
BM
13 *) Change the Unix randomness entropy gathering to use poll() when
14 possible instead of select(), since the latter has some
15 undesirable limitations.
16 [Darryl Miles via Richard Levitte and Bodo Moeller]
17
aa17ab7e
BM
18 *) Disable "ECCdraft" ciphersuites more thoroughly. Now special
19 treatment in ssl/ssl_ciph.s makes sure that these ciphersuites
20 cannot be implicitly activated as part of, e.g., the "AES" alias.
21 However, please upgrade to OpenSSL 0.9.9[-dev] for
22 non-experimental use of the ECC ciphersuites to get TLS extension
23 support, which is required for curve and point format negotiation
24 to avoid potential handshake problems.
35908bd0
BM
25 [Bodo Moeller]
26
0e73294e
BM
27 *) Disable rogue ciphersuites:
28
29 - SSLv2 0x08 0x00 0x80 ("RC4-64-MD5")
30 - SSLv3/TLSv1 0x00 0x61 ("EXP1024-RC2-CBC-MD5")
31 - SSLv3/TLSv1 0x00 0x60 ("EXP1024-RC4-MD5")
32
33 The latter two were purportedly from
34 draft-ietf-tls-56-bit-ciphersuites-0[01].txt, but do not really
35 appear there.
36
37 Also deactive the remaining ciphersuites from
38 draft-ietf-tls-56-bit-ciphersuites-01.txt. These are just as
39 unofficial, and the ID has long expired.
40 [Bodo Moeller]
41
6d2cd23f
BM
42 *) Fix RSA blinding Heisenbug (problems sometimes occured on
43 dual-core machines) and other potential thread-safety issues.
44 [Bodo Moeller]
45
e18eef3d
BM
46 *) Add the symmetric cipher Camellia (128-bit, 192-bit, 256-bit key
47 versions), which is now available for royalty-free use
48 (see http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html).
49 Also, add Camellia TLS ciphersuites from RFC 4132.
50
51 To minimize changes between patchlevels in the OpenSSL 0.9.8
52 series, Camellia remains excluded from compilation unless OpenSSL
53 is configured with 'enable-camellia'.
54 [NTT]
55
b723a7b1
DSH
56 *) Disable the padding bug check when compression is in use. The padding
57 bug check assumes the first packet is of even length, this is not
58 necessarily true if compresssion is enabled and can result in false
59 positives causing handshake failure. The actual bug test is ancient
60 code so it is hoped that implementations will either have fixed it by
61 now or any which still have the bug do not support compression.
62 [Steve Henson]
1c5dc844 63
f871949e 64 Changes between 0.9.8a and 0.9.8b [04 May 2006]
d8b408b1 65
cbb0b734
DSH
66 *) When applying a cipher rule check to see if string match is an explicit
67 cipher suite and only match that one cipher suite if it is.
68 [Steve Henson]
69
217382d5
DSH
70 *) Link in manifests for VC++ if needed.
71 [Austin Ziegler <halostatue@gmail.com>]
72
bc932045 73 *) Update support for ECC-based TLS ciphersuites according to
5586a71a
BM
74 draft-ietf-tls-ecc-12.txt with proposed changes (but without
75 TLS extensions, which are supported starting with the 0.9.9
76 branch, not in the OpenSSL 0.9.8 branch).
bc932045
BM
77 [Douglas Stebila]
78
23d43aae
BM
79 *) New functions EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() to support
80 opaque EVP_CIPHER_CTX handling.
81 [Steve Henson]
82
7614f0e5
DSH
83 *) Fixes and enhancements to zlib compression code. We now only use
84 "zlib1.dll" and use the default __cdecl calling convention on Win32
85 to conform with the standards mentioned here:
86 http://www.zlib.net/DLL_FAQ.txt
87 Static zlib linking now works on Windows and the new --with-zlib-include
88 --with-zlib-lib options to Configure can be used to supply the location
89 of the headers and library. Gracefully handle case where zlib library
90 can't be loaded.
91 [Steve Henson]
92
feef17fd
DSH
93 *) Several fixes and enhancements to the OID generation code. The old code
94 sometimes allowed invalid OIDs (1.X for X >= 40 for example), couldn't
95 handle numbers larger than ULONG_MAX, truncated printing and had a
96 non standard OBJ_obj2txt() behaviour.
97 [Steve Henson]
98
abb0c2bb
DSH
99 *) Add support for building of engines under engine/ as shared libraries
100 under VC++ build system.
101 [Steve Henson]
102
d3afc92b
RL
103 *) Corrected the numerous bugs in the Win32 path splitter in DSO.
104 Hopefully, we will not see any false combination of paths any more.
105 [Richard Levitte]
106
64932f9e
MC
107 Changes between 0.9.8 and 0.9.8a [11 Oct 2005]
108
109 *) Remove the functionality of SSL_OP_MSIE_SSLV2_RSA_PADDING
110 (part of SSL_OP_ALL). This option used to disable the
111 countermeasure against man-in-the-middle protocol-version
112 rollback in the SSL 2.0 server implementation, which is a bad
802c0146 113 idea. (CVE-2005-2969)
64932f9e
MC
114
115 [Bodo Moeller; problem pointed out by Yutaka Oiwa (Research Center
116 for Information Security, National Institute of Advanced Industrial
117 Science and Technology [AIST], Japan)]
750cb3d2 118
0fce007b
DSH
119 *) Add two function to clear and return the verify parameter flags.
120 [Steve Henson]
121
3c0e39c5
NL
122 *) Keep cipherlists sorted in the source instead of sorting them at
123 runtime, thus removing the need for a lock.
124 [Nils Larsch]
125
19fddebf 126 *) Avoid some small subgroup attacks in Diffie-Hellman.
60864221
BL
127 [Nick Mathewson and Ben Laurie]
128
129 *) Add functions for well-known primes.
130 [Nick Mathewson]
9ddb11f1 131
98e98614
AP
132 *) Extended Windows CE support.
133 [Satoshi Nakamura and Andy Polyakov]
134
222f2246
DSH
135 *) Initialize SSL_METHOD structures at compile time instead of during
136 runtime, thus removing the need for a lock.
137 [Steve Henson]
138
1682e8fb
DSH
139 *) Make PKCS7_decrypt() work even if no certificate is supplied by
140 attempting to decrypt each encrypted key in turn. Add support to
141 smime utility.
142 [Steve Henson]
750cb3d2 143
f254b540 144 Changes between 0.9.7h and 0.9.8 [05 Jul 2005]
12bdb643 145
6d2cd23f
BM
146 [NB: OpenSSL 0.9.7i and later 0.9.7 patch levels were released after
147 OpenSSL 0.9.8.]
148
1d01c9d4
RL
149 *) Add libcrypto.pc and libssl.pc for those who feel they need them.
150 [Richard Levitte]
151
152 *) Change CA.sh and CA.pl so they don't bundle the CSR and the private
153 key into the same file any more.
154 [Richard Levitte]
155
e32ea818
AP
156 *) Add initial support for Win64, both IA64 and AMD64/x64 flavors.
157 [Andy Polyakov]
158
09c1a425
DSH
159 *) Add -utf8 command line and config file option to 'ca'.
160 [Stefan <stf@udoma.org]
161
1d01c9d4
RL
162 *) Removed the macro des_crypt(), as it seems to conflict with some
163 libraries. Use DES_crypt().
164 [Richard Levitte]
165
a4578a54
GT
166 *) Correct naming of the 'chil' and '4758cca' ENGINEs. This
167 involves renaming the source and generated shared-libs for
168 both. The engines will accept the corrected or legacy ids
169 ('ncipher' and '4758_cca' respectively) when binding. NB,
170 this only applies when building 'shared'.
171 [Corinna Vinschen <vinschen@redhat.com> and Geoff Thorpe]
172
b6995add
DSH
173 *) Add attribute functions to EVP_PKEY structure. Modify
174 PKCS12_create() to recognize a CSP name attribute and
175 use it. Make -CSP option work again in pkcs12 utility.
176 [Steve Henson]
177
800e400d
NL
178 *) Add new functionality to the bn blinding code:
179 - automatic re-creation of the BN_BLINDING parameters after
180 a fixed number of uses (currently 32)
181 - add new function for parameter creation
182 - introduce flags to control the update behaviour of the
183 BN_BLINDING parameters
184 - hide BN_BLINDING structure
185 Add a second BN_BLINDING slot to the RSA structure to improve
186 performance when a single RSA object is shared among several
187 threads.
188 [Nils Larsch]
189
36d16f8e
BL
190 *) Add support for DTLS.
191 [Nagendra Modadugu <nagendra@cs.stanford.edu> and Ben Laurie]
192
dc0ed30c
NL
193 *) Add support for DER encoded private keys (SSL_FILETYPE_ASN1)
194 to SSL_CTX_use_PrivateKey_file() and SSL_use_PrivateKey_file()
195 [Walter Goulet]
196
6049399b
NL
197 *) Remove buggy and incompletet DH cert support from
198 ssl/ssl_rsa.c and ssl/s3_both.c
199 [Nils Larsch]
200
12bdb643
NL
201 *) Use SHA-1 instead of MD5 as the default digest algorithm for
202 the apps/openssl applications.
203 [Nils Larsch]
4d94ae00 204
41a15c4f
BL
205 *) Compile clean with "-Wall -Wmissing-prototypes
206 -Wstrict-prototypes -Wmissing-declarations -Werror". Currently
207 DEBUG_SAFESTACK must also be set.
208 [Ben Laurie]
209
c9a112f5 210 *) Change ./Configure so that certain algorithms can be disabled by default.
ecc5ef87
BM
211 The new counterpiece to "no-xxx" is "enable-xxx".
212
213 The patented RC5 and MDC2 algorithms will now be disabled unless
214 "enable-rc5" and "enable-mdc2", respectively, are specified.
215
216 (IDEA remains enabled despite being patented. This is because IDEA
217 is frequently required for interoperability, and there is no license
218 fee for non-commercial use. As before, "no-idea" can be used to
219 avoid this algorithm.)
220
c9a112f5
BM
221 [Bodo Moeller]
222
6951c23a
RL
223 *) Add processing of proxy certificates (see RFC 3820). This work was
224 sponsored by KTH (The Royal Institute of Technology in Stockholm) and
225 EGEE (Enabling Grids for E-science in Europe).
226 [Richard Levitte]
227
ea681ba8
AP
228 *) RC4 performance overhaul on modern architectures/implementations, such
229 as Intel P4, IA-64 and AMD64.
230 [Andy Polyakov]
231
401ee37a
DSH
232 *) New utility extract-section.pl. This can be used specify an alternative
233 section number in a pod file instead of having to treat each file as
234 a separate case in Makefile. This can be done by adding two lines to the
235 pod file:
236
237 =for comment openssl_section:XXX
238
239 The blank line is mandatory.
240
241 [Steve Henson]
242
826a42a0
DSH
243 *) New arguments -certform, -keyform and -pass for s_client and s_server
244 to allow alternative format key and certificate files and passphrase
245 sources.
246 [Steve Henson]
247
5d7c222d
DSH
248 *) New structure X509_VERIFY_PARAM which combines current verify parameters,
249 update associated structures and add various utility functions.
250
251 Add new policy related verify parameters, include policy checking in
252 standard verify code. Enhance 'smime' application with extra parameters
253 to support policy checking and print out.
254 [Steve Henson]
255
30fe028f
GT
256 *) Add a new engine to support VIA PadLock ACE extensions in the VIA C3
257 Nehemiah processors. These extensions support AES encryption in hardware
258 as well as RNG (though RNG support is currently disabled).
259 [Michal Ludvig <michal@logix.cz>, with help from Andy Polyakov]
260
df11e1e9
GT
261 *) Deprecate BN_[get|set]_params() functions (they were ignored internally).
262 [Geoff Thorpe]
263
ad500340
AP
264 *) New FIPS 180-2 algorithms, SHA-224/-256/-384/-512 are implemented.
265 [Andy Polyakov and a number of other people]
266
e14f4aab
AP
267 *) Improved PowerPC platform support. Most notably BIGNUM assembler
268 implementation contributed by IBM.
269 [Suresh Chari, Peter Waltenberg, Andy Polyakov]
270
bcfea9fb
GT
271 *) The new 'RSA_generate_key_ex' function now takes a BIGNUM for the public
272 exponent rather than 'unsigned long'. There is a corresponding change to
273 the new 'rsa_keygen' element of the RSA_METHOD structure.
274 [Jelte Jansen, Geoff Thorpe]
275
d5f686d8
BM
276 *) Functionality for creating the initial serial number file is now
277 moved from CA.pl to the 'ca' utility with a new option -create_serial.
278
279 (Before OpenSSL 0.9.7e, CA.pl used to initialize the serial
280 number file to 1, which is bound to cause problems. To avoid
281 the problems while respecting compatibility between different 0.9.7
282 patchlevels, 0.9.7e employed 'openssl x509 -next_serial' in
283 CA.pl for serial number initialization. With the new release 0.9.8,
284 we can fix the problem directly in the 'ca' utility.)
64674bcc
DSH
285 [Steve Henson]
286
3a87a9b9
GT
287 *) Reduced header interdepencies by declaring more opaque objects in
288 ossl_typ.h. As a consequence, including some headers (eg. engine.h) will
289 give fewer recursive includes, which could break lazy source code - so
290 this change is covered by the OPENSSL_NO_DEPRECATED symbol. As always,
291 developers should define this symbol when building and using openssl to
292 ensure they track the recommended behaviour, interfaces, [etc], but
293 backwards-compatible behaviour prevails when this isn't defined.
294 [Geoff Thorpe]
295
bf5773fa
DSH
296 *) New function X509_POLICY_NODE_print() which prints out policy nodes.
297 [Steve Henson]
298
216659eb
DSH
299 *) Add new EVP function EVP_CIPHER_CTX_rand_key and associated functionality.
300 This will generate a random key of the appropriate length based on the
301 cipher context. The EVP_CIPHER can provide its own random key generation
302 routine to support keys of a specific form. This is used in the des and
303 3des routines to generate a key of the correct parity. Update S/MIME
304 code to use new functions and hence generate correct parity DES keys.
305 Add EVP_CHECK_DES_KEY #define to return an error if the key is not
306 valid (weak or incorrect parity).
307 [Steve Henson]
308
e1a27eb3
DSH
309 *) Add a local set of CRLs that can be used by X509_verify_cert() as well
310 as looking them up. This is useful when the verified structure may contain
311 CRLs, for example PKCS#7 signedData. Modify PKCS7_verify() to use any CRLs
312 present unless the new PKCS7_NO_CRL flag is asserted.
313 [Steve Henson]
314
6446e0c3
DSH
315 *) Extend ASN1 oid configuration module. It now additionally accepts the
316 syntax:
317
318 shortName = some long name, 1.2.3.4
319 [Steve Henson]
320
5c98b2ca
GT
321 *) Reimplemented the BN_CTX implementation. There is now no more static
322 limitation on the number of variables it can handle nor the depth of the
323 "stack" handling for BN_CTX_start()/BN_CTX_end() pairs. The stack
324 information can now expand as required, and rather than having a single
325 static array of bignums, BN_CTX now uses a linked-list of such arrays
326 allowing it to expand on demand whilst maintaining the usefulness of
327 BN_CTX's "bundling".
328 [Geoff Thorpe]
329
46ef873f
GT
330 *) Add a missing BN_CTX parameter to the 'rsa_mod_exp' callback in RSA_METHOD
331 to allow all RSA operations to function using a single BN_CTX.
332 [Geoff Thorpe]
333
4acc3e90
DSH
334 *) Preliminary support for certificate policy evaluation and checking. This
335 is initially intended to pass the tests outlined in "Conformance Testing
336 of Relying Party Client Certificate Path Processing Logic" v1.07.
337 [Steve Henson]
338
7f663ce4
GT
339 *) bn_dup_expand() has been deprecated, it was introduced in 0.9.7 and
340 remained unused and not that useful. A variety of other little bignum
341 tweaks and fixes have also been made continuing on from the audit (see
342 below).
343 [Geoff Thorpe]
344
875a644a
RL
345 *) Constify all or almost all d2i, c2i, s2i and r2i functions, along with
346 associated ASN1, EVP and SSL functions and old ASN1 macros.
7f663ce4 347 [Richard Levitte]
875a644a 348
b6358c89
GT
349 *) BN_zero() only needs to set 'top' and 'neg' to zero for correct results,
350 and this should never fail. So the return value from the use of
351 BN_set_word() (which can fail due to needless expansion) is now deprecated;
352 if OPENSSL_NO_DEPRECATED is defined, BN_zero() is a void macro.
353 [Geoff Thorpe]
354
9e051bac
GT
355 *) BN_CTX_get() should return zero-valued bignums, providing the same
356 initialised value as BN_new().
357