55abf914d84c17cb7453627abc4e7d8d38d8d1ff
[openssl.git] / CHANGES
1
2  OpenSSL CHANGES
3  _______________
4
5
6  Changes between 0.9.1c and 0.9.2
7
8   *) Modify crl2pkcs7 so it supports multiple -certfile arguments. Fix a
9      few typos.
10      [Steve Henson]
11
12   *) Fixes to BN code.  Previously the default was to define BN_RECURSION
13      but the BN code had some problems that would cause failures when
14      doing certificate verification and some other functions.
15      [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)]
16
17   *) Add ASN1 and PEM code to support netscape certificate sequences.
18      [Steve Henson]
19
20   *) Add several PKIX and private extended key usage OIDs.
21      [Steve Henson]
22
23   *) Modify the 'ca' program to handle the new extension code. Modify
24      openssl.cnf for new extension format, add comments.
25      [Steve Henson]
26
27   *) More X509 V3 changes. Fix typo in v3_bitstr.c. Add support to 'req'
28      and add a sample to openssl.cnf so req -x509 now adds appropriate
29      CA extensions.
30      [Steve Henson]
31
32   *) Continued X509 V3 changes. Add to other makefiles, integrate with the
33      error code, add initial support to X509_print() and x509 application.
34      [Steve Henson]
35
36   *) Takes a deep breath and start addding X509 V3 extension support code. Add
37      files in crypto/x509v3. Move original stuff to crypto/x509v3/old. All this
38      stuff is currently isolated and isn't even compiled yet.
39      [Steve Henson]
40
41   *) Continuing patches for GeneralizedTime. Fix up certificate and CRL
42      ASN1 to use ASN1_TIME and modify print routines to use ASN1_TIME_print.
43      Removed the versions check from X509 routines when loading extensions:
44      this allows certain broken certificates that don't set the version
45      properly to be processed.
46      [Steve Henson]
47
48   *) Deal with irritating shit to do with dependencies, in YAAHW (Yet Another
49      Ad Hoc Way) - Makefile.ssls now all contain local dependencies, which
50      can still be regenerated with "make depend".
51      [Ben Laurie]
52
53   *) Spelling mistake in C version of CAST-128.
54      [Ben Laurie, reported by Jeremy Hylton <jeremy@cnri.reston.va.us>]
55
56   *) Changes to the error generation code. The perl script err-code.pl 
57      now reads in the old error codes and retains the old numbers, only
58      adding new ones if necessary. It also only changes the .err files if new
59      codes are added. The makefiles have been modified to only insert errors
60      when needed (to avoid needlessly modifying header files). This is done
61      by only inserting errors if the .err file is newer than the auto generated
62      C file. To rebuild all the error codes from scratch (the old behaviour)
63      either modify crypto/Makefile.ssl to pass the -regen flag to err_code.pl
64      or delete all the .err files.
65      [Steve Henson]
66
67   *) CAST-128 was incorrectly implemented for short keys. The C version has
68      been fixed, but is untested. The assembler versions are also fixed, but
69      new assembler HAS NOT BEEN GENERATED FOR WIN32 - the Makefile needs fixing
70      to regenerate it if needed.
71      [Ben Laurie, reported (with fix for C version) by Jun-ichiro itojun
72       Hagino <itojun@kame.net>]
73
74   *) File was opened incorrectly in randfile.c.
75      [Ulf Möller <ulf@fitug.de>]
76
77   *) Beginning of support for GeneralizedTime. d2i, i2d, check and print
78      functions. Also ASN1_TIME suite which is a CHOICE of UTCTime or
79      GeneralizedTime. ASN1_TIME is the proper type used in certificates et
80      al: it's just almost always a UTCTime. Note this patch adds new error
81      codes so do a "make errors" if there are problems.
82      [Steve Henson]
83
84   *) Correct Linux 1 recognition in config.
85      [Ulf Möller <ulf@fitug.de>]
86
87   *) Remove pointless MD5 hash when using DSA keys in ca.
88      [Anonymous <nobody@replay.com>]
89
90   *) Generate an error if given an empty string as a cert directory. Also
91      generate an error if handed NULL (previously returned 0 to indicate an
92      error, but didn't set one).
93      [Ben Laurie, reported by Anonymous <nobody@replay.com>]
94
95   *) Add prototypes to SSL methods. Make SSL_write's buffer const, at last.
96      [Ben Laurie]
97
98   *) Fix the dummy function BN_ref_mod_exp() in rsaref.c to have the correct
99      parameters. This was causing a warning which killed off the Win32 compile.
100      [Steve Henson]
101
102   *) Remove C++ style comments from crypto/bn/bn_local.h.
103      [Neil Costigan <neil.costigan@celocom.com>]
104
105   *) The function OBJ_txt2nid was broken. It was supposed to return a nid
106      based on a text string, looking up short and long names and finally
107      "dot" format. The "dot" format stuff didn't work. Added new function
108      OBJ_txt2obj to do the same but return an ASN1_OBJECT and rewrote 
109      OBJ_txt2nid to use it. OBJ_txt2obj can also return objects even if the
110      OID is not part of the table.
111      [Steve Henson]
112
113   *) Add prototypes to X509 lookup/verify methods, fixing a bug in
114      X509_LOOKUP_by_alias().
115      [Ben Laurie]
116
117   *) Sort openssl functions by name.
118      [Ben Laurie]
119
120   *) Get the gendsa program working (hopefully) and add it to app list. Remove
121      encryption from sample DSA keys (in case anyone is interested the password
122      was "1234").
123      [Steve Henson]
124
125   *) Make _all_ *_free functions accept a NULL pointer.
126      [Frans Heymans <fheymans@isaserver.be>]
127
128   *) If a DH key is generated in s3_srvr.c, don't blow it by trying to use
129      NULL pointers.
130      [Anonymous <nobody@replay.com>]
131
132   *) s_server should send the CAfile as acceptable CAs, not its own cert.
133      [Bodo Moeller <3moeller@informatik.uni-hamburg.de>]
134
135   *) Don't blow it for numeric -newkey arguments to apps/req.
136      [Bodo Moeller <3moeller@informatik.uni-hamburg.de>]
137
138   *) Temp key "for export" tests were wrong in s3_srvr.c.
139      [Anonymous <nobody@replay.com>]
140
141   *) Add prototype for temp key callback functions
142      SSL_CTX_set_tmp_{rsa,dh}_callback().
143      [Ben Laurie]
144
145   *) Make DH_free() tolerate being passed a NULL pointer (like RSA_free() and
146      DSA_free()). Make X509_PUBKEY_set() check for errors in d2i_PublicKey().
147      [Steve Henson]
148
149   *) X509_name_add_entry() freed the wrong thing after an error.
150      [Arne Ansper <arne@ats.cyber.ee>]
151
152   *) rsa_eay.c would attempt to free a NULL context.
153      [Arne Ansper <arne@ats.cyber.ee>]
154
155   *) BIO_s_socket() had a broken should_retry() on Windoze.
156      [Arne Ansper <arne@ats.cyber.ee>]
157
158   *) BIO_f_buffer() didn't pass on BIO_CTRL_FLUSH.
159      [Arne Ansper <arne@ats.cyber.ee>]
160
161   *) Make sure the already existing X509_STORE->depth variable is initialized
162      in X509_STORE_new(), but document the fact that this variable is still
163      unused in the certificate verification process.
164      [Ralf S. Engelschall]
165
166   *) Fix the various library and apps files to free up pkeys obtained from
167      X509_PUBKEY_get() et al. Also allow x509.c to handle netscape extensions.
168      [Steve Henson]
169
170   *) Fix reference counting in X509_PUBKEY_get(). This makes
171      demos/maurice/example2.c work, amongst others, probably.
172      [Steve Henson and Ben Laurie]
173
174   *) First cut of a cleanup for apps/. First the `ssleay' program is now named
175      `openssl' and second, the shortcut symlinks for the `openssl <command>'
176      are no longer created. This way we have a single and consistent command
177      line interface `openssl <command>', similar to `cvs <command>'.
178      [Ralf S. Engelschall, Paul Sutton and Ben Laurie]
179
180   *) ca.c: move test for DSA keys inside #ifndef NO_DSA. Make pubkey
181      BIT STRING wrapper always have zero unused bits.
182      [Steve Henson]
183
184   *) Add CA.pl, perl version of CA.sh, add extended key usage OID.
185      [Steve Henson]
186
187   *) Make the top-level INSTALL documentation easier to understand.
188      [Paul Sutton]
189
190   *) Makefiles updated to exit if an error occurs in a sub-directory
191      make (including if user presses ^C) [Paul Sutton]
192
193   *) Make Montgomery context stuff explicit in RSA data structure.
194      [Ben Laurie]
195
196   *) Fix build order of pem and err to allow for generated pem.h.
197      [Ben Laurie]
198
199   *) Fix renumbering bug in X509_NAME_delete_entry().
200      [Ben Laurie]
201
202   *) Enhanced the err-ins.pl script so it makes the error library number 
203      global and can add a library name. This is needed for external ASN1 and
204      other error libraries.
205      [Steve Henson]
206
207   *) Fixed sk_insert which never worked properly.
208      [Steve Henson]
209
210   *) Fix ASN1 macros so they can handle indefinite length construted 
211      EXPLICIT tags. Some non standard certificates use these: they can now
212      be read in.
213      [Steve Henson]
214
215   *) Merged the various old/obsolete SSLeay documentation files (doc/xxx.doc)
216      into a single doc/ssleay.txt bundle. This way the information is still
217      preserved but no longer messes up this directory. Now it's new room for
218      the new set of documenation files.
219      [Ralf S. Engelschall]
220
221   *) SETs were incorrectly DER encoded. This was a major pain, because they
222      shared code with SEQUENCEs, which aren't coded the same. This means that
223      almost everything to do with SETs or SEQUENCEs has either changed name or
224      number of arguments.
225      [Ben Laurie, based on a partial fix by GP Jayan <gp@nsj.co.jp>]
226
227   *) Fix test data to work with the above.
228      [Ben Laurie]
229
230   *) Fix the RSA header declarations that hid a bug I fixed in 0.9.0b but
231      was already fixed by Eric for 0.9.1 it seems.
232      [Ben Laurie - pointed out by Ulf Möller <ulf@fitug.de>]
233
234   *) Autodetect FreeBSD3.
235      [Ben Laurie]
236
237   *) Fix various bugs in Configure. This affects the following platforms:
238      nextstep
239      ncr-scde
240      unixware-2.0
241      unixware-2.0-pentium
242      sco5-cc.
243      [Ben Laurie]
244
245   *) Eliminate generated files from CVS. Reorder tests to regenerate files
246      before they are needed.
247      [Ben Laurie]
248
249   *) Generate Makefile.ssl from Makefile.org (to keep CVS happy).
250      [Ben Laurie]
251
252  Changes between 0.9.1b and 0.9.1c
253
254   *) Added OPENSSL_VERSION_NUMBER to crypto/crypto.h and 
255      changed SSLeay to OpenSSL in version strings.
256      [Ralf S. Engelschall]
257   
258   *) Some fixups to the top-level documents.
259      [Paul Sutton]
260
261   *) Fixed the nasty bug where rsaref.h was not found under compile-time
262      because the symlink to include/ was missing.
263      [Ralf S. Engelschall]
264
265   *) Incorporated the popular no-RSA/DSA-only patches 
266      which allow to compile a RSA-free SSLeay.
267      [Andrew Cooke / Interrader Ldt., Ralf S. Engelschall]
268
269   *) Fixed nasty rehash problem under `make -f Makefile.ssl links'
270      when "ssleay" is still not found.
271      [Ralf S. Engelschall]
272
273   *) Added more platforms to Configure: Cray T3E, HPUX 11, 
274      [Ralf S. Engelschall, Beckmann <beckman@acl.lanl.gov>]
275
276   *) Updated the README file.
277      [Ralf S. Engelschall]
278
279   *) Added various .cvsignore files in the CVS repository subdirs
280      to make a "cvs update" really silent.
281      [Ralf S. Engelschall]
282
283   *) Recompiled the error-definition header files and added
284      missing symbols to the Win32 linker tables.
285      [Ralf S. Engelschall]
286
287   *) Cleaned up the top-level documents;
288      o new files: CHANGES and LICENSE
289      o merged VERSION, HISTORY* and README* files a CHANGES.SSLeay 
290      o merged COPYRIGHT into LICENSE
291      o removed obsolete TODO file
292      o renamed MICROSOFT to INSTALL.W32
293      [Ralf S. Engelschall]
294
295   *) Removed dummy files from the 0.9.1b source tree: 
296      crypto/asn1/x crypto/bio/cd crypto/bio/fg crypto/bio/grep crypto/bio/vi
297      crypto/bn/asm/......add.c crypto/bn/asm/a.out crypto/dsa/f crypto/md5/f
298      crypto/pem/gmon.out crypto/perlasm/f crypto/pkcs7/build crypto/rsa/f
299      crypto/sha/asm/f crypto/threads/f ms/zzz ssl/f ssl/f.mak test/f
300      util/f.mak util/pl/f util/pl/f.mak crypto/bf/bf_locl.old apps/f
301      [Ralf S. Engelschall]
302
303   *) Added various platform portability fixes.
304      [Mark J. Cox]
305
306   *) The Genesis of the OpenSSL rpject:
307      We start with the latest (unreleased) SSLeay version 0.9.1b which Eric A.
308      Young and Tim J. Hudson created while they were working for C2Net until
309      summer 1998.
310      [The OpenSSL Project]
311  
312  Changes between 0.9.0b and 0.9.1b
313
314   *) Updated a few CA certificates under certs/
315      [Eric A. Young]
316
317   *) Changed some BIGNUM api stuff.
318      [Eric A. Young]
319
320   *) Various platform ports: OpenBSD, Ultrix, IRIX 64bit, NetBSD, 
321      DGUX x86, Linux Alpha, etc.
322      [Eric A. Young]
323
324   *) New COMP library [crypto/comp/] for SSL Record Layer Compression: 
325      RLE (dummy implemented) and ZLIB (really implemented when ZLIB is
326      available).
327      [Eric A. Young]
328
329   *) Add -strparse option to asn1pars program which parses nested 
330      binary structures 
331      [Dr Stephen Henson <shenson@bigfoot.com>]
332
333   *) Added "oid_file" to ssleay.cnf for "ca" and "req" programs.
334      [Eric A. Young]
335
336   *) DSA fix for "ca" program.
337      [Eric A. Young]
338
339   *) Added "-genkey" option to "dsaparam" program.
340      [Eric A. Young]
341
342   *) Added RIPE MD160 (rmd160) message digest.
343      [Eric A. Young]
344
345   *) Added -a (all) option to "ssleay version" command.
346      [Eric A. Young]
347
348   *) Added PLATFORM define which is the id given to Configure.
349      [Eric A. Young]
350
351   *) Added MemCheck_XXXX functions to crypto/mem.c for memory checking.
352      [Eric A. Young]
353
354   *) Extended the ASN.1 parser routines.
355      [Eric A. Young]
356
357   *) Extended BIO routines to support REUSEADDR, seek, tell, etc.
358      [Eric A. Young]
359
360   *) Added a BN_CTX to the BN library.
361      [Eric A. Young]
362
363   *) Fixed the weak key values in DES library
364      [Eric A. Young]
365
366   *) Changed API in EVP library for cipher aliases.
367      [Eric A. Young]
368
369   *) Added support for RC2/64bit cipher.
370      [Eric A. Young]
371
372   *) Converted the lhash library to the crypto/mem.c functions.
373      [Eric A. Young]
374
375   *) Added more recognized ASN.1 object ids.
376      [Eric A. Young]
377
378   *) Added more RSA padding checks for SSL/TLS.
379      [Eric A. Young]
380
381   *) Added BIO proxy/filter functionality.
382      [Eric A. Young]
383
384   *) Added extra_certs to SSL_CTX which can be used
385      send extra CA certificates to the client in the CA cert chain sending
386      process. It can be configured with SSL_CTX_add_extra_chain_cert().
387      [Eric A. Young]
388
389   *) Now Fortezza is denied in the authentication phase because
390      this is key exchange mechanism is not supported by SSLeay at all.
391      [Eric A. Young]
392
393   *) Additional PKCS1 checks.
394      [Eric A. Young]
395
396   *) Support the string "TLSv1" for all TLS v1 ciphers.
397      [Eric A. Young]
398
399   *) Added function SSL_get_ex_data_X509_STORE_CTX_idx() which gives the
400      ex_data index of the SSL context in the X509_STORE_CTX ex_data.
401      [Eric A. Young]
402
403   *) Fixed a few memory leaks.
404      [Eric A. Young]
405
406   *) Fixed various code and comment typos.
407      [Eric A. Young]
408
409   *) A minor bug in ssl/s3_clnt.c where there would always be 4 0 
410      bytes sent in the client random.
411      [Edward Bishop <ebishop@spyglass.com>]
412