]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
comment
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
bf3d6c0c 5 Changes between 0.9.8a and 0.9.9 [xx XXX xxxx]
28e4fe34 6
d804f86b
BM
7 *) Disable rogue ciphersuites:
8
9 - SSLv2 0x08 0x00 0x80 ("RC4-64-MD5")
10 - SSLv3/TLSv1 0x00 0x61 ("EXP1024-RC2-CBC-MD5")
11 - SSLv3/TLSv1 0x00 0x60 ("EXP1024-RC4-MD5")
12
13 The latter two were purportedly from
14 draft-ietf-tls-56-bit-ciphersuites-0[01].txt, but do not really
15 appear there.
16
17 Other ciphersuites from draft-ietf-tls-56-bit-ciphersuites-01.txt
18 remain enabled for now, but are just as unofficial, and the ID
19 has long expired; these will probably disappear soon.
20 [Bodo Moeller]
21
8dee9f84
BM
22 *) Move code previously exiled into file crypto/ec/ec2_smpt.c
23 to ec2_smpl.c, and no longer require the OPENSSL_EC_BIN_PT_COMP
24 macro.
25 [Bodo Moeller]
26
4d524040
AP
27 *) New candidate for BIGNUM assembler implementation, bn_mul_mont,
28 dedicated Montgomery multiplication procedure, is introduced.
29 BN_MONT_CTX is modified to allow bn_mul_mont to reach for higher
30 "64-bit" performance on certain 32-bit targets.
31 [Andy Polyakov]
32
566dda07
DSH
33 *) New option SSL_OP_NO_COMP to disable use of compression selectively
34 in SSL structures. New SSL ctrl to set maximum send fragment size.
35 Save memory by seeting the I/O buffer sizes dynamically instead of
36 using the maximum available value.
37 [Steve Henson]
38
13e4670c
BM
39 *) New option -V for 'openssl ciphers'. This prints the ciphersuite code
40 in addition to the text details.
41 [Bodo Moeller]
42
1ef7acfe
DSH
43 *) Very, very preliminary EXPERIMENTAL support for printing of general
44 ASN1 structures. This currently produces rather ugly output and doesn't
45 handle several customised structures at all.
46 [Steve Henson]
47
a0156a92
DSH
48 *) Integrated support for PVK file format and some related formats such
49 as MS PUBLICKEYBLOB and PRIVATEKEYBLOB. Command line switches to support
50 these in the 'rsa' and 'dsa' utilities.
51 [Steve Henson]
52
eea374fd
DSH
53 *) Support for PKCS#1 RSAPublicKey format on rsa utility command line.
54 [Steve Henson]
55
45e27385
DSH
56 *) Remove the ancient ASN1_METHOD code. This was only ever used in one
57 place for the (very old) "NETSCAPE" format certificates which are now
58 handled using new ASN1 code equivalents.
eea374fd 59 [Steve Henson]
45e27385 60
4ebb342f
NL
61 *) Let the TLSv1_method() etc. functions return a 'const' SSL_METHOD
62 pointer and make the SSL_METHOD parameter in SSL_CTX_new,
63 SSL_CTX_set_ssl_version and SSL_set_ssl_method 'const'.
64 [Nils Larsch]
65
9aa9d70d 66 *) Modify CRL distribution points extension code to print out previously
0745d089
DSH
67 unsupported fields. Enhance extension setting code to allow setting of
68 all fields.
9aa9d70d
DSH
69 [Steve Henson]
70
0537f968 71 *) Add print and set support for Issuing Distribution Point CRL extension.
231493c9 72 [Steve Henson]
28e4fe34 73
998ac55e
RL
74 Changes between 0.9.8a and 0.9.8b [XX xxx XXXX]
75
b40228a6
DSH
76 *) New functions EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() to support
77 opaque EVP_CIPHER_CTX handling.
78 [Steve Henson]
79
ad2695b1
DSH
80 *) Fixes and enhancements to zlib compression code. We now only use
81 "zlib1.dll" and use the default __cdecl calling convention on Win32
82 to conform with the standards mentioned here:
83 http://www.zlib.net/DLL_FAQ.txt
84 Static zlib linking now works on Windows and the new --with-zlib-include
85 --with-zlib-lib options to Configure can be used to supply the location
86 of the headers and library. Gracefully handle case where zlib library
87 can't be loaded.
88 [Steve Henson]
89
452ae49d
DSH
90 *) Several fixes and enhancements to the OID generation code. The old code
91 sometimes allowed invalid OIDs (1.X for X >= 40 for example), couldn't
92 handle numbers larger than ULONG_MAX, truncated printing and had a
93 non standard OBJ_obj2txt() behaviour.
94 [Steve Henson]
95
fbf002bb
DSH
96 *) Add support for building of engines under engine/ as shared libraries
97 under VC++ build system.
98 [Steve Henson]
99
998ac55e
RL
100 *) Corrected the numerous bugs in the Win32 path splitter in DSO.
101 Hopefully, we will not see any false combination of paths any more.
102 [Richard Levitte]
103
d357be38
MC
104 Changes between 0.9.8 and 0.9.8a [11 Oct 2005]
105
106 *) Remove the functionality of SSL_OP_MSIE_SSLV2_RSA_PADDING
107 (part of SSL_OP_ALL). This option used to disable the
108 countermeasure against man-in-the-middle protocol-version
109 rollback in the SSL 2.0 server implementation, which is a bad
04fac373 110 idea. (CVE-2005-2969)
d357be38
MC
111
112 [Bodo Moeller; problem pointed out by Yutaka Oiwa (Research Center
113 for Information Security, National Institute of Advanced Industrial
114 Science and Technology [AIST], Japan)]
2bd2cd9b 115
f022c177
DSH
116 *) Add two function to clear and return the verify parameter flags.
117 [Steve Henson]
118
6e119bb0
NL
119 *) Keep cipherlists sorted in the source instead of sorting them at
120 runtime, thus removing the need for a lock.
121 [Nils Larsch]
122
770bc596 123 *) Avoid some small subgroup attacks in Diffie-Hellman.
bf3d6c0c
BL
124 [Nick Mathewson and Ben Laurie]
125
126 *) Add functions for well-known primes.
127 [Nick Mathewson]
128
0491e058
AP
129 *) Extended Windows CE support.
130 [Satoshi Nakamura and Andy Polyakov]
a1006c37 131
f3b656b2
DSH
132 *) Initialize SSL_METHOD structures at compile time instead of during
133 runtime, thus removing the need for a lock.
134 [Steve Henson]
135
8f2e4fdf
DSH
136 *) Make PKCS7_decrypt() work even if no certificate is supplied by
137 attempting to decrypt each encrypted key in turn. Add support to
138 smime utility.
139 [Steve Henson]
2bd2cd9b
RL
140
141 Changes between 0.9.7h and 0.9.8 [05 Jul 2005]
12bdb643 142
c8310124
RL
143 *) Add libcrypto.pc and libssl.pc for those who feel they need them.
144 [Richard Levitte]
145
146 *) Change CA.sh and CA.pl so they don't bundle the CSR and the private
147 key into the same file any more.
148 [Richard Levitte]
149
8d3509b9
AP
150 *) Add initial support for Win64, both IA64 and AMD64/x64 flavors.
151 [Andy Polyakov]
152
cbdac46d
DSH
153 *) Add -utf8 command line and config file option to 'ca'.
154 [Stefan <stf@udoma.org]
155
c8310124
RL
156 *) Removed the macro des_crypt(), as it seems to conflict with some
157 libraries. Use DES_crypt().
158 [Richard Levitte]
159
a2c32e2d
GT
160 *) Correct naming of the 'chil' and '4758cca' ENGINEs. This
161 involves renaming the source and generated shared-libs for
162 both. The engines will accept the corrected or legacy ids
163 ('ncipher' and '4758_cca' respectively) when binding. NB,
164 this only applies when building 'shared'.
165 [Corinna Vinschen <vinschen@redhat.com> and Geoff Thorpe]
166
b6995add
DSH
167 *) Add attribute functions to EVP_PKEY structure. Modify
168 PKCS12_create() to recognize a CSP name attribute and
169 use it. Make -CSP option work again in pkcs12 utility.
170 [Steve Henson]
171
800e400d
NL
172 *) Add new functionality to the bn blinding code:
173 - automatic re-creation of the BN_BLINDING parameters after
174 a fixed number of uses (currently 32)
175 - add new function for parameter creation
176 - introduce flags to control the update behaviour of the
177 BN_BLINDING parameters
178 - hide BN_BLINDING structure
179 Add a second BN_BLINDING slot to the RSA structure to improve
180 performance when a single RSA object is shared among several
181 threads.
182 [Nils Larsch]
183
36d16f8e
BL
184 *) Add support for DTLS.
185 [Nagendra Modadugu <nagendra@cs.stanford.edu> and Ben Laurie]
186
dc0ed30c
NL
187 *) Add support for DER encoded private keys (SSL_FILETYPE_ASN1)
188 to SSL_CTX_use_PrivateKey_file() and SSL_use_PrivateKey_file()
189 [Walter Goulet]
190
6049399b
NL
191 *) Remove buggy and incompletet DH cert support from
192 ssl/ssl_rsa.c and ssl/s3_both.c
193 [Nils Larsch]
194
12bdb643
NL
195 *) Use SHA-1 instead of MD5 as the default digest algorithm for
196 the apps/openssl applications.
197 [Nils Larsch]
4d94ae00 198
41a15c4f
BL
199 *) Compile clean with "-Wall -Wmissing-prototypes
200 -Wstrict-prototypes -Wmissing-declarations -Werror". Currently
201 DEBUG_SAFESTACK must also be set.
202 [Ben Laurie]
203
c9a112f5 204 *) Change ./Configure so that certain algorithms can be disabled by default.
ecc5ef87
BM
205 The new counterpiece to "no-xxx" is "enable-xxx".
206
207 The patented RC5 and MDC2 algorithms will now be disabled unless
208 "enable-rc5" and "enable-mdc2", respectively, are specified.
209
210 (IDEA remains enabled despite being patented. This is because IDEA
211 is frequently required for interoperability, and there is no license
212 fee for non-commercial use. As before, "no-idea" can be used to
213 avoid this algorithm.)
214
c9a112f5
BM
215 [Bodo Moeller]
216
6951c23a
RL
217 *) Add processing of proxy certificates (see RFC 3820). This work was
218 sponsored by KTH (The Royal Institute of Technology in Stockholm) and
219 EGEE (Enabling Grids for E-science in Europe).
220 [Richard Levitte]
221
ea681ba8
AP
222 *) RC4 performance overhaul on modern architectures/implementations, such
223 as Intel P4, IA-64 and AMD64.
224 [Andy Polyakov]
225
401ee37a
DSH
226 *) New utility extract-section.pl. This can be used specify an alternative
227 section number in a pod file instead of having to treat each file as
228 a separate case in Makefile. This can be done by adding two lines to the
229 pod file:
230
231 =for comment openssl_section:XXX
232
233 The blank line is mandatory.
234
235 [Steve Henson]
236
826a42a0
DSH
237 *) New arguments -certform, -keyform and -pass for s_client and s_server
238 to allow alternative format key and certificate files and passphrase
239 sources.
240 [Steve Henson]
241
5d7c222d
DSH
242 *) New structure X509_VERIFY_PARAM which combines current verify parameters,
243 update associated structures and add various utility functions.
244
245 Add new policy related verify parameters, include policy checking in
246 standard verify code. Enhance 'smime' application with extra parameters
247 to support policy checking and print out.
248 [Steve Henson]
249
30fe028f
GT
250 *) Add a new engine to support VIA PadLock ACE extensions in the VIA C3
251 Nehemiah processors. These extensions support AES encryption in hardware
252 as well as RNG (though RNG support is currently disabled).
253 [Michal Ludvig <michal@logix.cz>, with help from Andy Polyakov]
254
df11e1e9
GT
255 *) Deprecate BN_[get|set]_params() functions (they were ignored internally).
256 [Geoff Thorpe]
257
ad500340
AP
258 *) New FIPS 180-2 algorithms, SHA-224/-256/-384/-512 are implemented.
259 [Andy Polyakov and a number of other people]
260
e14f4aab
AP
261 *) Improved PowerPC platform support. Most notably BIGNUM assembler
262 implementation contributed by IBM.
263 [Suresh Chari, Peter Waltenberg, Andy Polyakov]
264
bcfea9fb
GT
265 *) The new 'RSA_generate_key_ex' function now takes a BIGNUM for the public
266 exponent rather than 'unsigned long'. There is a corresponding change to
267 the new 'rsa_keygen' element of the RSA_METHOD structure.
268 [Jelte Jansen, Geoff Thorpe]
269
d5f686d8
BM
270 *) Functionality for creating the initial serial number file is now
271 moved from CA.pl to the 'ca' utility with a new option -create_serial.
272
273 (Before OpenSSL 0.9.7e, CA.pl used to initialize the serial
274 number file to 1, which is bound to cause problems. To avoid
275 the problems while respecting compatibility between different 0.9.7
276 patchlevels, 0.9.7e employed 'openssl x509 -next_serial' in
277 CA.pl for serial number initialization. With the new release 0.9.8,
278 we can fix the problem directly in the 'ca' utility.)
64674bcc
DSH
279 [Steve Henson]
280
3a87a9b9
GT
281 *) Reduced header interdepencies by declaring more opaque objects in
282 ossl_typ.h. As a consequence, including some headers (eg. engine.h) will
283 give fewer recursive includes, which could break lazy source code - so
284 this change is covered by the OPENSSL_NO_DEPRECATED symbol. As always,
285 developers should define this symbol when building and using openssl to
286 ensure they track the recommended behaviour, interfaces, [etc], but
287 backwards-compatible behaviour prevails when this isn't defined.
288 [Geoff Thorpe]
289
bf5773fa
DSH
290 *) New function X509_POLICY_NODE_print() which prints out policy nodes.
291 [Steve Henson]
292
216659eb
DSH
293 *) Add new EVP function EVP_CIPHER_CTX_rand_key and associated functionality.
294 This will generate a random key of the appropriate length based on the
295 cipher context. The EVP_CIPHER can provide its own random key generation
296 routine to support keys of a specific form. This is used in the des and
297 3des routines to generate a key of the correct parity. Update S/MIME
298 code to use new functions and hence generate correct parity DES keys.
299 Add EVP_CHECK_DES_KEY #define to return an error if the key is not
300 valid (weak or incorrect parity).
301 [Steve Henson]
302
e1a27eb3
DSH
303 *) Add a local set of CRLs that can be used by X509_verify_cert() as well
304 as looking them up. This is useful when the verified structure may contain
305 CRLs, for example PKCS#7 signedData. Modify PKCS7_verify() to use any CRLs
306 present unless the new PKCS7_NO_CRL flag is asserted.
307 [Steve Henson]
308
6446e0c3
DSH
309 *) Extend ASN1 oid configuration module. It now additionally accepts the
310 syntax:
311
312 shortName = some long name, 1.2.3.4
313 [Steve Henson]
314
5c98b2ca
GT
315 *) Reimplemented the BN_CTX implementation. There is now no more static
316 limitation on the number of variables it can handle nor the depth of the
317 "stack" handling for BN_CTX_start()/BN_CTX_end() pairs. The stack
318 information can now expand as required, and rather than having a single
319 static array of bignums, BN_CTX now uses a linked-list of such arrays
320 allowing it to expand on demand whilst maintaining the usefulness of
321 BN_CTX's "bundling".
322 [Geoff Thorpe]
323
46ef873f
GT
324 *) Add a missing BN_CTX parameter to the 'rsa_mod_exp' callback in RSA_METHOD
325 to allow all RSA operations to function using a single BN_CTX.
326 [Geoff Thorpe]
327
4acc3e90
DSH
328 *) Preliminary support for certificate policy evaluation and checking. This
329 is initially intended to pass the tests outlined in "Conformance Testing
330 of Relying Party Client Certificate Path Processing Logic" v1.07.
331 [Steve Henson]
332
7f663ce4
GT
333 *) bn_dup_expand() has been deprecated, it was introduced in 0.9.7 and
334 remained unused and not that useful. A variety of other little bignum
335 tweaks and fixes have also been made continuing on from the audit (see
336 below).
337 [Geoff Thorpe]
338
875a644a
RL
339 *) Constify all or almost all d2i, c2i, s2i and r2i functions, along with
340 associated ASN1, EVP and SSL functions and old ASN1 macros.
7f663ce4 341 [Richard Levitte]
875a644a 342
b6358c89
GT
343 *) BN_zero() only needs to set 'top' and 'neg' to zero for correct results,
344 and this should never fail. So the return value from the use of
345 BN_set_word() (which can fail due to needless expansion) is now deprecated;
346 if OPENSSL_NO_DEPRECATED is defined, BN_zero() is a void macro.
347 [Geoff Thorpe]
348
9e051bac
GT
349 *) BN_CTX_get() should return zero-valued bignums, providing the same
350 initialised value as BN_new().
351