2 - Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
3 - Lots and lots of changes
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
12 - Finally reworked the cipher string to ciphers again, so it
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.
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
27 - The perlv5 stuff is working. Currently on message digests,
28 ciphers and the bignum library.
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
38 - Lots of small changes
39 - Fix for binaray mode in Windows for the FILE BIO, thanks to
40 Bob Denny <rdenny@dc3.com>
43 - Quite a few internal cleanups, (removal of errno, and using macros
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.
49 - The Cast5 cipher has been added. MD5 and SHA-1 are now in assember
53 - Fixed a bug in the BIO_gethostbyname() cache.
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
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.
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
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.
88 - Converted the x86 bignum assembler to us the perl scripts
92 - If SSL_set_session() is passed a NULL session, it now clears the
96 - Added a '-ss_cert file' to apps/ca.c. This will sign selfsigned
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>
105 - NO_FP_API and NO_STDIO added.
106 - Put in sh config command. It auto runs Configure with the correct
110 - Fix x509.c so if a DSA cert has different parameters to its parent,
111 they are left in place. Not tested yet.
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.
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.
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.
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.
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
160 - Fixed some problems with the auto flushing of the session-id
161 cache. It was not occuring on the server side.
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.
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>
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.
191 SSLeay 0.8.1 released.
194 - Server side initated dynamic renegotiation is broken. I will fix
195 it when I get back from holidays.
198 - Quite a few small changes.
199 - INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk>
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.
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'
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.
225 - Bug in X509_NAME_get_text_by_OBJ(), looking starting at index
226 0, not -1 :-( Fix from Tim Hudson (tjh@cryptsoft.com).
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.
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
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.
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 :-)
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
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
269 - Still did not have the auto 'experimental' code removal
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.
278 SSLeay 0.8.0 finally it gets released.
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.
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
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.
296 Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c.
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.
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.
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.