Import of old SSLeay release: SSLeay 0.9.0b
[openssl.git] / HISTORY
1 16-Mar-98
2         - Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
3         - Lots and lots of changes
4
5 29-Jan-98
6         - ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from
7           Goetz Babin-Ebell <babinebell@trustcenter.de>.
8         - SSL_version() now returns SSL2_VERSION, SSL3_VERSION or
9           TLS1_VERSION.
10
11 7-Jan-98
12         - Finally reworked the cipher string to ciphers again, so it
13           works correctly
14         - All the app_data stuff is now ex_data with funcion calls to access.
15           The index is supplied by a function and 'methods' can be setup
16           for the types that are called on XXX_new/XXX_free.  This lets
17           applications get notified on creation and destruction.  Some of
18           the RSA methods could be implemented this way and I may do so.
19         - Oh yes, SSL under perl5 is working at the basic level.
20
21 15-Dec-97
22         - Warning - the gethostbyname cache is not fully thread safe,
23           but it should work well enough.
24         - Major internal reworking of the app_data stuff.  More functions
25           but if you were accessing ->app_data directly, things will
26           stop working.
27         - The perlv5 stuff is working.  Currently on message digests,
28           ciphers and the bignum library.
29
30 9-Dec-97
31         - Modified re-negotiation so that server initated re-neg
32           will cause a SSL_read() to return -1 should retry.
33           The danger otherwise was that the server and the
34           client could end up both trying to read when using non-blocking
35           sockets.
36
37 4-Dec-97
38         - Lots of small changes
39         - Fix for binaray mode in Windows for the FILE BIO, thanks to
40           Bob Denny <rdenny@dc3.com>
41
42 17-Nov-97
43         - Quite a few internal cleanups, (removal of errno, and using macros
44           defined in e_os.h).
45         - A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where
46           the automactic naming out output files was being stuffed up.
47
48 29-Oct-97
49         - The Cast5 cipher has been added.  MD5 and SHA-1 are now in assember
50           for x86.
51
52 21-Oct-97
53         - Fixed a bug in the BIO_gethostbyname() cache.
54
55 15-Oct-97
56         - cbc mode for blowfish/des/3des is now in assember.  Blowfish asm
57           has also been improved.  At this point in time, on the pentium,
58           md5 is %80 faster, the unoptimesed sha-1 is %79 faster,
59           des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc
60           is %62 faster.
61
62 12-Oct-97
63         - MEM_BUF_grow() has been fixed so that it always sets the buf->length
64           to the value we are 'growing' to.  Think of MEM_BUF_grow() as the
65           way to set the length value correctly.
66
67 10-Oct-97
68         - I now hash for certificate lookup on the raw DER encoded RDN (md5).
69           This breaks things again :-(.  This is efficent since I cache
70           the DER encoding of the RDN.
71         - The text DN now puts in the numeric OID instead of UNKNOWN.
72         - req can now process arbitary OIDs in the config file.
73         - I've been implementing md5 in x86 asm, much faster :-).
74         - Started sha1 in x86 asm, needs more work.
75         - Quite a few speedups in the BN stuff.  RSA public operation
76           has been made faster by caching the BN_MONT_CTX structure.
77           The calulating of the Ai where A*Ai === 1 mod m was rather
78           expensive.  Basically a 40-50% speedup on public operations.
79           The RSA speedup is now 15% on pentiums and %20 on pentium
80           pro.
81
82 30-Sep-97
83         - After doing some profiling, I added x86 adm for bn_add_words(),
84           which just adds 2 arrays of longs together.  A %10 speedup
85           for 512 and 1024 bit RSA on the pentium pro.
86
87 29-Sep-97
88         - Converted the x86 bignum assembler to us the perl scripts
89           for generation.
90
91 23-Sep-97
92         - If SSL_set_session() is passed a NULL session, it now clears the
93           current session-id.
94
95 22-Sep-97
96         - Added a '-ss_cert file' to apps/ca.c.  This will sign selfsigned
97           certificates.
98         - Bug in crypto/evp/encode.c where by decoding of 65 base64
99           encoded lines, one line at a time (via a memory BIO) would report
100           EOF after the first line was decoded.
101         - Fix in X509_find_by_issuer_and_serial() from
102           Dr Stephen Henson <shenson@bigfoot.com>
103
104 19-Sep-97
105         - NO_FP_API and NO_STDIO added.
106         - Put in sh config command.  It auto runs Configure with the correct
107           parameters.
108
109 18-Sep-97
110         - Fix x509.c so if a DSA cert has different parameters to its parent,
111           they are left in place.  Not tested yet.
112
113 16-Sep-97
114         - ssl_create_cipher_list() had some bugs, fixes from
115           Patrick Eisenacher <eisenach@stud.uni-frankfurt.de>
116         - Fixed a bug in the Base64 BIO, where it would return 1 instead
117           of -1 when end of input was encountered but should retry.
118           Basically a Base64/Memory BIO interaction problem.
119         - Added a HMAC set of functions in preporarion for TLS work.
120
121 15-Sep-97
122         - Top level makefile tweak - Cameron Simpson <cs@zip.com.au>
123         - Prime generation spead up %25 (512 bit prime, pentium pro linux)
124           by using montgomery multiplication in the prime number test.
125
126 11-Sep-97
127         - Ugly bug in ssl3_write_bytes().  Basically if application land
128           does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code
129           did not check the size and tried to copy the entire buffer.
130           This would tend to cause memory overwrites since SSLv3 has
131           a maximum packet size of 16k.  If your program uses
132           buffers <= 16k, you would probably never see this problem.
133         - Fixed a new errors that were cause by malloc() not returning
134           0 initialised memory..
135         - SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
136           SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
137           since this flags stops SSLeay being able to handle client
138           cert requests correctly.
139
140 08-Sep-97
141         - SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added.  When switched
142           on, the SSL server routines will not use a SSL_SESSION that is
143           held in it's cache.  This in intended to be used with the session-id
144           callbacks so that while the session-ids are still stored in the
145           cache, the decision to use them and how to look them up can be
146           done by the callbacks.  The are the 'new', 'get' and 'remove'
147           callbacks.  This can be used to determine the session-id
148           to use depending on information like which port/host the connection
149           is coming from.  Since the are also SSL_SESSION_set_app_data() and
150           SSL_SESSION_get_app_data() functions, the application can hold
151           information against the session-id as well.
152
153 03-Sep-97
154         - Added lookup of CRLs to the by_dir method,
155           X509_load_crl_file() also added.  Basically it means you can
156           lookup CRLs via the same system used to lookup certificates.
157         - Changed things so that the X509_NAME structure can contain
158           ASN.1 BIT_STRINGS which is required for the unique
159           identifier OID.
160         - Fixed some problems with the auto flushing of the session-id
161           cache.  It was not occuring on the server side.
162
163 02-Sep-97
164         - Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size)
165           which is the maximum number of entries allowed in the
166           session-id cache.  This is enforced with a simple FIFO list.
167           The default size is 20*1024 entries which is rather large :-).
168           The Timeout code is still always operating.
169
170 01-Sep-97
171         - Added an argument to all the 'generate private key/prime`
172           callbacks.  It is the last parameter so this should not
173           break existing code but it is needed for C++.
174         - Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64()
175           BIO.  This lets the BIO read and write base64 encoded data
176           without inserting or looking for '\n' characters.  The '-A'
177           flag turns this on when using apps/enc.c.
178         - RSA_NO_PADDING added to help BSAFE functionality.  This is a
179           very dangerous thing to use, since RSA private key
180           operations without random padding bytes (as PKCS#1 adds) can
181           be attacked such that the private key can be revealed.
182         - ASN.1 bug and rc2-40-cbc and rc4-40 added by
183           Dr Stephen Henson <shenson@bigfoot.com>
184
185 31-Aug-97 (stuff added while I was away)        
186         - Linux pthreads by Tim Hudson (tjh@cryptsoft.com).
187         - RSA_flags() added allowing bypass of pub/priv match check
188           in ssl/ssl_rsa.c - Tim Hudson.
189         - A few minor bugs.
190
191 SSLeay 0.8.1 released.
192
193 19-Jul-97
194         - Server side initated dynamic renegotiation is broken.  I will fix
195           it when I get back from holidays.
196
197 15-Jul-97
198         - Quite a few small changes.
199         - INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk>
200
201 09-Jul-97
202         - Added 2 new values to the SSL info callback.
203           SSL_CB_START which is passed when the SSL protocol is started
204           and SSL_CB_DONE when it has finished sucsessfully.
205
206 08-Jul-97
207         - Fixed a few bugs problems in apps/req.c and crypto/asn1/x_pkey.c
208           that related to DSA public/private keys.
209         - Added all the relevent PEM and normal IO functions to support
210           reading and writing RSAPublic keys.
211         - Changed makefiles to use ${AR} instead of 'ar r'
212
213 07-Jul-97
214         - Error in ERR_remove_state() that would leave a dangling reference
215           to a free()ed location - thanks to Alex Kiernan <alex@hisoft.co.uk>
216         - s_client now prints the X509_NAMEs passed from the server
217           when requesting a client cert.
218         - Added a ssl->type, which is one of SSL_ST_CONNECT or
219           SSL_ST_ACCEPT.  I had to add it so I could tell if I was
220           a connect or an accept after the handshake had finished.
221         - SSL_get_client_CA_list(SSL *s) now returns the CA names
222           passed by the server if called by a client side SSL.
223
224 05-Jul-97
225         - Bug in X509_NAME_get_text_by_OBJ(), looking starting at index
226           0, not -1 :-(  Fix from Tim Hudson (tjh@cryptsoft.com).
227
228 04-Jul-97
229         - Fixed some things in X509_NAME_add_entry(), thanks to
230           Matthew Donald <matthew@world.net>.
231         - I had a look at the cipher section and though that it was a
232           bit confused, so I've changed it.
233         - I was not setting up the RC4-64-MD5 cipher correctly.  It is
234           a MS special that appears in exported MS Money.
235         - Error in all my DH ciphers.  Section 7.6.7.3 of the SSLv3
236           spec.  I was missing the two byte length header for the
237           ClientDiffieHellmanPublic value.  This is a packet sent from
238           the client to the server.  The SSL_OP_SSLEAY_080_CLIENT_DH_BUG
239           option will enable SSLeay server side SSLv3 accept either
240           the correct or my 080 packet format.
241         - Fixed a few typos in crypto/pem.org.
242
243 02-Jul-97
244         - Alias mapping for EVP_get_(digest|cipher)byname is now
245           performed before a lookup for actual cipher.  This means
246           that an alias can be used to 're-direct' a cipher or a
247           digest.
248         - ASN1_read_bio() had a bug that only showed up when using a
249           memory BIO.  When EOF is reached in the memory BIO, it is
250           reported as a -1 with BIO_should_retry() set to true.
251
252 01-Jul-97
253         - Fixed an error in X509_verify_cert() caused by my
254           miss-understanding how 'do { contine } while(0);' works.
255           Thanks to Emil Sit <sit@mit.edu> for educating me :-)
256
257 30-Jun-97
258         - Base64 decoding error.  If the last data line did not end with
259           a '=', sometimes extra data would be returned.
260         - Another 'cut and paste' bug in x509.c related to setting up the
261           STDout BIO.
262
263 27-Jun-97
264         - apps/ciphers.c was not printing due to an editing error.
265         - Alex Kiernan <alex@hisoft.co.uk> send in a nice fix for
266           a library build error in util/mk1mf.pl
267
268 26-Jun-97
269         - Still did not have the auto 'experimental' code removal
270           script correct.
271         - A few header tweaks for Watcom 11.0 under Win32 from
272           Rolf Lindemann <Lindemann@maz-hh.de>
273         - 0 length OCTET_STRING bug in asn1_parse
274         - A minor fix with an non-existent function in the MS .def files.
275         - A few changes to the PKCS7 stuff.
276
277 25-Jun-97
278         SSLeay 0.8.0 finally it gets released.
279
280 24-Jun-97
281         Added a SSL_OP_EPHEMERAL_RSA option which causes all SSLv3 RSA keys to
282         use a temporary RSA key.  This is experimental and needs some more work.
283         Fixed a few Win16 build problems.
284
285 23-Jun-97
286         SSLv3 bug. I was not doing the 'lookup' of the CERT structure
287         correctly. I was taking the SSL->ctx->default_cert when I should
288         have been using SSL->cert. The bug was in ssl/s3_srvr.c
289
290 20-Jun-97
291         X509_ATTRIBUTES were being encoded wrongly by apps/reg.c and the
292         rest of the library. Even though I had the code required to do
293         it correctly, apps/req.c was doing the wrong thing.  I have fixed
294         and tested everything.
295
296         Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c.
297
298 19-Jun-97
299         Fixed a bug in the SSLv2 server side first packet handling. When
300         using the non-blocking test BIO, the ssl->s2->first_packet flag
301         was being reset when a would-block failure occurred when reading
302         the first 5 bytes of the first packet. This caused the checking
303         logic to run at the wrong time and cause an error.
304
305         Fixed a problem with specifying cipher. If RC4-MD5 were used,
306         only the SSLv3 version would be picked up.  Now this will pick
307         up both SSLv2 and SSLv3 versions. This required changing the
308         SSL_CIPHER->mask values so that they only mask the ciphers,
309         digests, authentication, export type and key-exchange algorithms.
310
311         I found that when a SSLv23 session is established, a reused
312         session, of type SSLv3 was attempting to write the SSLv2 
313         ciphers, which were invalid. The SSL_METHOD->put_cipher_by_char 
314         method has been modified so it will only write out cipher which
315         that method knows about.  
316