xref: /minix3/crypto/external/bsd/openssl/dist/CHANGES.SSLeay (revision ebfedea0ce5bbe81e252ddf32d732e40fb633fae)
1*ebfedea0SLionel SambucThis file contains the changes for the SSLeay library up to version
2*ebfedea0SLionel Sambuc0.9.0b. For later changes, see the file "CHANGES".
3*ebfedea0SLionel Sambuc
4*ebfedea0SLionel Sambuc  SSLeay CHANGES
5*ebfedea0SLionel Sambuc  ______________
6*ebfedea0SLionel Sambuc
7*ebfedea0SLionel SambucChanges between 0.8.x and 0.9.0b
8*ebfedea0SLionel Sambuc
9*ebfedea0SLionel Sambuc10-Apr-1998
10*ebfedea0SLionel Sambuc
11*ebfedea0SLionel SambucI said the next version would go out at easter, and so it shall.
12*ebfedea0SLionel SambucI expect a 0.9.1 will follow with portability fixes in the next few weeks.
13*ebfedea0SLionel Sambuc
14*ebfedea0SLionel SambucThis is a quick, meet the deadline.  Look to ssl-users for comments on what
15*ebfedea0SLionel Sambucis new etc.
16*ebfedea0SLionel Sambuc
17*ebfedea0SLionel Sambuceric (about to go bushwalking for the 4 day easter break :-)
18*ebfedea0SLionel Sambuc
19*ebfedea0SLionel Sambuc16-Mar-98
20*ebfedea0SLionel Sambuc    - Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU>
21*ebfedea0SLionel Sambuc    - Lots and lots of changes
22*ebfedea0SLionel Sambuc
23*ebfedea0SLionel Sambuc29-Jan-98
24*ebfedea0SLionel Sambuc    - ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from
25*ebfedea0SLionel Sambuc      Goetz Babin-Ebell <babinebell@trustcenter.de>.
26*ebfedea0SLionel Sambuc    - SSL_version() now returns SSL2_VERSION, SSL3_VERSION or
27*ebfedea0SLionel Sambuc      TLS1_VERSION.
28*ebfedea0SLionel Sambuc
29*ebfedea0SLionel Sambuc7-Jan-98
30*ebfedea0SLionel Sambuc    - Finally reworked the cipher string to ciphers again, so it
31*ebfedea0SLionel Sambuc      works correctly
32*ebfedea0SLionel Sambuc    - All the app_data stuff is now ex_data with funcion calls to access.
33*ebfedea0SLionel Sambuc      The index is supplied by a function and 'methods' can be setup
34*ebfedea0SLionel Sambuc      for the types that are called on XXX_new/XXX_free.  This lets
35*ebfedea0SLionel Sambuc      applications get notified on creation and destruction.  Some of
36*ebfedea0SLionel Sambuc      the RSA methods could be implemented this way and I may do so.
37*ebfedea0SLionel Sambuc    - Oh yes, SSL under perl5 is working at the basic level.
38*ebfedea0SLionel Sambuc
39*ebfedea0SLionel Sambuc15-Dec-97
40*ebfedea0SLionel Sambuc    - Warning - the gethostbyname cache is not fully thread safe,
41*ebfedea0SLionel Sambuc      but it should work well enough.
42*ebfedea0SLionel Sambuc    - Major internal reworking of the app_data stuff.  More functions
43*ebfedea0SLionel Sambuc      but if you were accessing ->app_data directly, things will
44*ebfedea0SLionel Sambuc      stop working.
45*ebfedea0SLionel Sambuc    - The perlv5 stuff is working.  Currently on message digests,
46*ebfedea0SLionel Sambuc      ciphers and the bignum library.
47*ebfedea0SLionel Sambuc
48*ebfedea0SLionel Sambuc9-Dec-97
49*ebfedea0SLionel Sambuc    - Modified re-negotiation so that server initated re-neg
50*ebfedea0SLionel Sambuc      will cause a SSL_read() to return -1 should retry.
51*ebfedea0SLionel Sambuc      The danger otherwise was that the server and the
52*ebfedea0SLionel Sambuc      client could end up both trying to read when using non-blocking
53*ebfedea0SLionel Sambuc      sockets.
54*ebfedea0SLionel Sambuc
55*ebfedea0SLionel Sambuc4-Dec-97
56*ebfedea0SLionel Sambuc    - Lots of small changes
57*ebfedea0SLionel Sambuc    - Fix for binaray mode in Windows for the FILE BIO, thanks to
58*ebfedea0SLionel Sambuc      Bob Denny <rdenny@dc3.com>
59*ebfedea0SLionel Sambuc
60*ebfedea0SLionel Sambuc17-Nov-97
61*ebfedea0SLionel Sambuc    - Quite a few internal cleanups, (removal of errno, and using macros
62*ebfedea0SLionel Sambuc      defined in e_os.h).
63*ebfedea0SLionel Sambuc    - A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where
64*ebfedea0SLionel Sambuc      the automactic naming out output files was being stuffed up.
65*ebfedea0SLionel Sambuc
66*ebfedea0SLionel Sambuc29-Oct-97
67*ebfedea0SLionel Sambuc    - The Cast5 cipher has been added.  MD5 and SHA-1 are now in assember
68*ebfedea0SLionel Sambuc      for x86.
69*ebfedea0SLionel Sambuc
70*ebfedea0SLionel Sambuc21-Oct-97
71*ebfedea0SLionel Sambuc    - Fixed a bug in the BIO_gethostbyname() cache.
72*ebfedea0SLionel Sambuc
73*ebfedea0SLionel Sambuc15-Oct-97
74*ebfedea0SLionel Sambuc    - cbc mode for blowfish/des/3des is now in assember.  Blowfish asm
75*ebfedea0SLionel Sambuc      has also been improved.  At this point in time, on the pentium,
76*ebfedea0SLionel Sambuc      md5 is %80 faster, the unoptimesed sha-1 is %79 faster,
77*ebfedea0SLionel Sambuc      des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc
78*ebfedea0SLionel Sambuc      is %62 faster.
79*ebfedea0SLionel Sambuc
80*ebfedea0SLionel Sambuc12-Oct-97
81*ebfedea0SLionel Sambuc    - MEM_BUF_grow() has been fixed so that it always sets the buf->length
82*ebfedea0SLionel Sambuc      to the value we are 'growing' to.  Think of MEM_BUF_grow() as the
83*ebfedea0SLionel Sambuc      way to set the length value correctly.
84*ebfedea0SLionel Sambuc
85*ebfedea0SLionel Sambuc10-Oct-97
86*ebfedea0SLionel Sambuc    - I now hash for certificate lookup on the raw DER encoded RDN (md5).
87*ebfedea0SLionel Sambuc      This breaks things again :-(.  This is efficent since I cache
88*ebfedea0SLionel Sambuc      the DER encoding of the RDN.
89*ebfedea0SLionel Sambuc    - The text DN now puts in the numeric OID instead of UNKNOWN.
90*ebfedea0SLionel Sambuc    - req can now process arbitary OIDs in the config file.
91*ebfedea0SLionel Sambuc    - I've been implementing md5 in x86 asm, much faster :-).
92*ebfedea0SLionel Sambuc    - Started sha1 in x86 asm, needs more work.
93*ebfedea0SLionel Sambuc    - Quite a few speedups in the BN stuff.  RSA public operation
94*ebfedea0SLionel Sambuc      has been made faster by caching the BN_MONT_CTX structure.
95*ebfedea0SLionel Sambuc      The calulating of the Ai where A*Ai === 1 mod m was rather
96*ebfedea0SLionel Sambuc      expensive.  Basically a 40-50% speedup on public operations.
97*ebfedea0SLionel Sambuc      The RSA speedup is now 15% on pentiums and %20 on pentium
98*ebfedea0SLionel Sambuc      pro.
99*ebfedea0SLionel Sambuc
100*ebfedea0SLionel Sambuc30-Sep-97
101*ebfedea0SLionel Sambuc    - After doing some profiling, I added x86 adm for bn_add_words(),
102*ebfedea0SLionel Sambuc      which just adds 2 arrays of longs together.  A %10 speedup
103*ebfedea0SLionel Sambuc      for 512 and 1024 bit RSA on the pentium pro.
104*ebfedea0SLionel Sambuc
105*ebfedea0SLionel Sambuc29-Sep-97
106*ebfedea0SLionel Sambuc    - Converted the x86 bignum assembler to us the perl scripts
107*ebfedea0SLionel Sambuc      for generation.
108*ebfedea0SLionel Sambuc
109*ebfedea0SLionel Sambuc23-Sep-97
110*ebfedea0SLionel Sambuc    - If SSL_set_session() is passed a NULL session, it now clears the
111*ebfedea0SLionel Sambuc      current session-id.
112*ebfedea0SLionel Sambuc
113*ebfedea0SLionel Sambuc22-Sep-97
114*ebfedea0SLionel Sambuc    - Added a '-ss_cert file' to apps/ca.c.  This will sign selfsigned
115*ebfedea0SLionel Sambuc      certificates.
116*ebfedea0SLionel Sambuc    - Bug in crypto/evp/encode.c where by decoding of 65 base64
117*ebfedea0SLionel Sambuc      encoded lines, one line at a time (via a memory BIO) would report
118*ebfedea0SLionel Sambuc      EOF after the first line was decoded.
119*ebfedea0SLionel Sambuc    - Fix in X509_find_by_issuer_and_serial() from
120*ebfedea0SLionel Sambuc      Dr Stephen Henson <shenson@bigfoot.com>
121*ebfedea0SLionel Sambuc
122*ebfedea0SLionel Sambuc19-Sep-97
123*ebfedea0SLionel Sambuc    - NO_FP_API and NO_STDIO added.
124*ebfedea0SLionel Sambuc    - Put in sh config command.  It auto runs Configure with the correct
125*ebfedea0SLionel Sambuc      parameters.
126*ebfedea0SLionel Sambuc
127*ebfedea0SLionel Sambuc18-Sep-97
128*ebfedea0SLionel Sambuc    - Fix x509.c so if a DSA cert has different parameters to its parent,
129*ebfedea0SLionel Sambuc      they are left in place.  Not tested yet.
130*ebfedea0SLionel Sambuc
131*ebfedea0SLionel Sambuc16-Sep-97
132*ebfedea0SLionel Sambuc    - ssl_create_cipher_list() had some bugs, fixes from
133*ebfedea0SLionel Sambuc      Patrick Eisenacher <eisenach@stud.uni-frankfurt.de>
134*ebfedea0SLionel Sambuc    - Fixed a bug in the Base64 BIO, where it would return 1 instead
135*ebfedea0SLionel Sambuc      of -1 when end of input was encountered but should retry.
136*ebfedea0SLionel Sambuc      Basically a Base64/Memory BIO interaction problem.
137*ebfedea0SLionel Sambuc    - Added a HMAC set of functions in preporarion for TLS work.
138*ebfedea0SLionel Sambuc
139*ebfedea0SLionel Sambuc15-Sep-97
140*ebfedea0SLionel Sambuc    - Top level makefile tweak - Cameron Simpson <cs@zip.com.au>
141*ebfedea0SLionel Sambuc    - Prime generation spead up %25 (512 bit prime, pentium pro linux)
142*ebfedea0SLionel Sambuc      by using montgomery multiplication in the prime number test.
143*ebfedea0SLionel Sambuc
144*ebfedea0SLionel Sambuc11-Sep-97
145*ebfedea0SLionel Sambuc    - Ugly bug in ssl3_write_bytes().  Basically if application land
146*ebfedea0SLionel Sambuc      does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code
147*ebfedea0SLionel Sambuc      did not check the size and tried to copy the entire buffer.
148*ebfedea0SLionel Sambuc      This would tend to cause memory overwrites since SSLv3 has
149*ebfedea0SLionel Sambuc      a maximum packet size of 16k.  If your program uses
150*ebfedea0SLionel Sambuc      buffers <= 16k, you would probably never see this problem.
151*ebfedea0SLionel Sambuc    - Fixed a few errors that were cause by malloc() not returning
152*ebfedea0SLionel Sambuc      0 initialised memory..
153*ebfedea0SLionel Sambuc    - SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using
154*ebfedea0SLionel Sambuc      SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing
155*ebfedea0SLionel Sambuc      since this flags stops SSLeay being able to handle client
156*ebfedea0SLionel Sambuc      cert requests correctly.
157*ebfedea0SLionel Sambuc
158*ebfedea0SLionel Sambuc08-Sep-97
159*ebfedea0SLionel Sambuc    - SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added.  When switched
160*ebfedea0SLionel Sambuc      on, the SSL server routines will not use a SSL_SESSION that is
161*ebfedea0SLionel Sambuc      held in it's cache.  This in intended to be used with the session-id
162*ebfedea0SLionel Sambuc      callbacks so that while the session-ids are still stored in the
163*ebfedea0SLionel Sambuc      cache, the decision to use them and how to look them up can be
164*ebfedea0SLionel Sambuc      done by the callbacks.  The are the 'new', 'get' and 'remove'
165*ebfedea0SLionel Sambuc      callbacks.  This can be used to determine the session-id
166*ebfedea0SLionel Sambuc      to use depending on information like which port/host the connection
167*ebfedea0SLionel Sambuc      is coming from.  Since the are also SSL_SESSION_set_app_data() and
168*ebfedea0SLionel Sambuc      SSL_SESSION_get_app_data() functions, the application can hold
169*ebfedea0SLionel Sambuc      information against the session-id as well.
170*ebfedea0SLionel Sambuc
171*ebfedea0SLionel Sambuc03-Sep-97
172*ebfedea0SLionel Sambuc    - Added lookup of CRLs to the by_dir method,
173*ebfedea0SLionel Sambuc      X509_load_crl_file() also added.  Basically it means you can
174*ebfedea0SLionel Sambuc      lookup CRLs via the same system used to lookup certificates.
175*ebfedea0SLionel Sambuc    - Changed things so that the X509_NAME structure can contain
176*ebfedea0SLionel Sambuc      ASN.1 BIT_STRINGS which is required for the unique
177*ebfedea0SLionel Sambuc      identifier OID.
178*ebfedea0SLionel Sambuc    - Fixed some problems with the auto flushing of the session-id
179*ebfedea0SLionel Sambuc      cache.  It was not occuring on the server side.
180*ebfedea0SLionel Sambuc
181*ebfedea0SLionel Sambuc02-Sep-97
182*ebfedea0SLionel Sambuc    - Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size)
183*ebfedea0SLionel Sambuc      which is the maximum number of entries allowed in the
184*ebfedea0SLionel Sambuc      session-id cache.  This is enforced with a simple FIFO list.
185*ebfedea0SLionel Sambuc      The default size is 20*1024 entries which is rather large :-).
186*ebfedea0SLionel Sambuc      The Timeout code is still always operating.
187*ebfedea0SLionel Sambuc
188*ebfedea0SLionel Sambuc01-Sep-97
189*ebfedea0SLionel Sambuc    - Added an argument to all the 'generate private key/prime`
190*ebfedea0SLionel Sambuc      callbacks.  It is the last parameter so this should not
191*ebfedea0SLionel Sambuc      break existing code but it is needed for C++.
192*ebfedea0SLionel Sambuc    - Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64()
193*ebfedea0SLionel Sambuc      BIO.  This lets the BIO read and write base64 encoded data
194*ebfedea0SLionel Sambuc      without inserting or looking for '\n' characters.  The '-A'
195*ebfedea0SLionel Sambuc      flag turns this on when using apps/enc.c.
196*ebfedea0SLionel Sambuc    - RSA_NO_PADDING added to help BSAFE functionality.  This is a
197*ebfedea0SLionel Sambuc      very dangerous thing to use, since RSA private key
198*ebfedea0SLionel Sambuc      operations without random padding bytes (as PKCS#1 adds) can
199*ebfedea0SLionel Sambuc      be attacked such that the private key can be revealed.
200*ebfedea0SLionel Sambuc    - ASN.1 bug and rc2-40-cbc and rc4-40 added by
201*ebfedea0SLionel Sambuc      Dr Stephen Henson <shenson@bigfoot.com>
202*ebfedea0SLionel Sambuc
203*ebfedea0SLionel Sambuc31-Aug-97 (stuff added while I was away)
204*ebfedea0SLionel Sambuc    - Linux pthreads by Tim Hudson (tjh@cryptsoft.com).
205*ebfedea0SLionel Sambuc    - RSA_flags() added allowing bypass of pub/priv match check
206*ebfedea0SLionel Sambuc      in ssl/ssl_rsa.c - Tim Hudson.
207*ebfedea0SLionel Sambuc    - A few minor bugs.
208*ebfedea0SLionel Sambuc
209*ebfedea0SLionel SambucSSLeay 0.8.1 released.
210*ebfedea0SLionel Sambuc
211*ebfedea0SLionel Sambuc19-Jul-97
212*ebfedea0SLionel Sambuc    - Server side initated dynamic renegotiation is broken.  I will fix
213*ebfedea0SLionel Sambuc      it when I get back from holidays.
214*ebfedea0SLionel Sambuc
215*ebfedea0SLionel Sambuc15-Jul-97
216*ebfedea0SLionel Sambuc    - Quite a few small changes.
217*ebfedea0SLionel Sambuc    - INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk>
218*ebfedea0SLionel Sambuc
219*ebfedea0SLionel Sambuc09-Jul-97
220*ebfedea0SLionel Sambuc    - Added 2 new values to the SSL info callback.
221*ebfedea0SLionel Sambuc      SSL_CB_START which is passed when the SSL protocol is started
222*ebfedea0SLionel Sambuc      and SSL_CB_DONE when it has finished sucsessfully.
223*ebfedea0SLionel Sambuc
224*ebfedea0SLionel Sambuc08-Jul-97
225*ebfedea0SLionel Sambuc    - Fixed a few bugs problems in apps/req.c and crypto/asn1/x_pkey.c
226*ebfedea0SLionel Sambuc      that related to DSA public/private keys.
227*ebfedea0SLionel Sambuc    - Added all the relevent PEM and normal IO functions to support
228*ebfedea0SLionel Sambuc      reading and writing RSAPublic keys.
229*ebfedea0SLionel Sambuc    - Changed makefiles to use ${AR} instead of 'ar r'
230*ebfedea0SLionel Sambuc
231*ebfedea0SLionel Sambuc07-Jul-97
232*ebfedea0SLionel Sambuc    - Error in ERR_remove_state() that would leave a dangling reference
233*ebfedea0SLionel Sambuc      to a free()ed location - thanks to Alex Kiernan <alex@hisoft.co.uk>
234*ebfedea0SLionel Sambuc    - s_client now prints the X509_NAMEs passed from the server
235*ebfedea0SLionel Sambuc      when requesting a client cert.
236*ebfedea0SLionel Sambuc    - Added a ssl->type, which is one of SSL_ST_CONNECT or
237*ebfedea0SLionel Sambuc      SSL_ST_ACCEPT.  I had to add it so I could tell if I was
238*ebfedea0SLionel Sambuc      a connect or an accept after the handshake had finished.
239*ebfedea0SLionel Sambuc    - SSL_get_client_CA_list(SSL *s) now returns the CA names
240*ebfedea0SLionel Sambuc      passed by the server if called by a client side SSL.
241*ebfedea0SLionel Sambuc
242*ebfedea0SLionel Sambuc05-Jul-97
243*ebfedea0SLionel Sambuc    - Bug in X509_NAME_get_text_by_OBJ(), looking starting at index
244*ebfedea0SLionel Sambuc      0, not -1 :-(  Fix from Tim Hudson (tjh@cryptsoft.com).
245*ebfedea0SLionel Sambuc
246*ebfedea0SLionel Sambuc04-Jul-97
247*ebfedea0SLionel Sambuc    - Fixed some things in X509_NAME_add_entry(), thanks to
248*ebfedea0SLionel Sambuc      Matthew Donald <matthew@world.net>.
249*ebfedea0SLionel Sambuc    - I had a look at the cipher section and though that it was a
250*ebfedea0SLionel Sambuc      bit confused, so I've changed it.
251*ebfedea0SLionel Sambuc    - I was not setting up the RC4-64-MD5 cipher correctly.  It is
252*ebfedea0SLionel Sambuc      a MS special that appears in exported MS Money.
253*ebfedea0SLionel Sambuc    - Error in all my DH ciphers.  Section 7.6.7.3 of the SSLv3
254*ebfedea0SLionel Sambuc      spec.  I was missing the two byte length header for the
255*ebfedea0SLionel Sambuc      ClientDiffieHellmanPublic value.  This is a packet sent from
256*ebfedea0SLionel Sambuc      the client to the server.  The SSL_OP_SSLEAY_080_CLIENT_DH_BUG
257*ebfedea0SLionel Sambuc      option will enable SSLeay server side SSLv3 accept either
258*ebfedea0SLionel Sambuc      the correct or my 080 packet format.
259*ebfedea0SLionel Sambuc    - Fixed a few typos in crypto/pem.org.
260*ebfedea0SLionel Sambuc
261*ebfedea0SLionel Sambuc02-Jul-97
262*ebfedea0SLionel Sambuc    - Alias mapping for EVP_get_(digest|cipher)byname is now
263*ebfedea0SLionel Sambuc      performed before a lookup for actual cipher.  This means
264*ebfedea0SLionel Sambuc      that an alias can be used to 're-direct' a cipher or a
265*ebfedea0SLionel Sambuc      digest.
266*ebfedea0SLionel Sambuc    - ASN1_read_bio() had a bug that only showed up when using a
267*ebfedea0SLionel Sambuc      memory BIO.  When EOF is reached in the memory BIO, it is
268*ebfedea0SLionel Sambuc      reported as a -1 with BIO_should_retry() set to true.
269*ebfedea0SLionel Sambuc
270*ebfedea0SLionel Sambuc01-Jul-97
271*ebfedea0SLionel Sambuc    - Fixed an error in X509_verify_cert() caused by my
272*ebfedea0SLionel Sambuc      miss-understanding how 'do { contine } while(0);' works.
273*ebfedea0SLionel Sambuc      Thanks to Emil Sit <sit@mit.edu> for educating me :-)
274*ebfedea0SLionel Sambuc
275*ebfedea0SLionel Sambuc30-Jun-97
276*ebfedea0SLionel Sambuc    - Base64 decoding error.  If the last data line did not end with
277*ebfedea0SLionel Sambuc      a '=', sometimes extra data would be returned.
278*ebfedea0SLionel Sambuc    - Another 'cut and paste' bug in x509.c related to setting up the
279*ebfedea0SLionel Sambuc      STDout BIO.
280*ebfedea0SLionel Sambuc
281*ebfedea0SLionel Sambuc27-Jun-97
282*ebfedea0SLionel Sambuc    - apps/ciphers.c was not printing due to an editing error.
283*ebfedea0SLionel Sambuc    - Alex Kiernan <alex@hisoft.co.uk> send in a nice fix for
284*ebfedea0SLionel Sambuc      a library build error in util/mk1mf.pl
285*ebfedea0SLionel Sambuc
286*ebfedea0SLionel Sambuc26-Jun-97
287*ebfedea0SLionel Sambuc    - Still did not have the auto 'experimental' code removal
288*ebfedea0SLionel Sambuc      script correct.
289*ebfedea0SLionel Sambuc    - A few header tweaks for Watcom 11.0 under Win32 from
290*ebfedea0SLionel Sambuc      Rolf Lindemann <Lindemann@maz-hh.de>
291*ebfedea0SLionel Sambuc    - 0 length OCTET_STRING bug in asn1_parse
292*ebfedea0SLionel Sambuc    - A minor fix with an non-existent function in the MS .def files.
293*ebfedea0SLionel Sambuc    - A few changes to the PKCS7 stuff.
294*ebfedea0SLionel Sambuc
295*ebfedea0SLionel Sambuc25-Jun-97
296*ebfedea0SLionel Sambuc    SSLeay 0.8.0 finally it gets released.
297*ebfedea0SLionel Sambuc
298*ebfedea0SLionel Sambuc24-Jun-97
299*ebfedea0SLionel Sambuc    Added a SSL_OP_EPHEMERAL_RSA option which causes all SSLv3 RSA keys to
300*ebfedea0SLionel Sambuc    use a temporary RSA key.  This is experimental and needs some more work.
301*ebfedea0SLionel Sambuc    Fixed a few Win16 build problems.
302*ebfedea0SLionel Sambuc
303*ebfedea0SLionel Sambuc23-Jun-97
304*ebfedea0SLionel Sambuc    SSLv3 bug. I was not doing the 'lookup' of the CERT structure
305*ebfedea0SLionel Sambuc    correctly. I was taking the SSL->ctx->default_cert when I should
306*ebfedea0SLionel Sambuc    have been using SSL->cert. The bug was in ssl/s3_srvr.c
307*ebfedea0SLionel Sambuc
308*ebfedea0SLionel Sambuc20-Jun-97
309*ebfedea0SLionel Sambuc    X509_ATTRIBUTES were being encoded wrongly by apps/reg.c and the
310*ebfedea0SLionel Sambuc    rest of the library. Even though I had the code required to do
311*ebfedea0SLionel Sambuc    it correctly, apps/req.c was doing the wrong thing.  I have fixed
312*ebfedea0SLionel Sambuc    and tested everything.
313*ebfedea0SLionel Sambuc
314*ebfedea0SLionel Sambuc    Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c.
315*ebfedea0SLionel Sambuc
316*ebfedea0SLionel Sambuc19-Jun-97
317*ebfedea0SLionel Sambuc    Fixed a bug in the SSLv2 server side first packet handling. When
318*ebfedea0SLionel Sambuc    using the non-blocking test BIO, the ssl->s2->first_packet flag
319*ebfedea0SLionel Sambuc    was being reset when a would-block failure occurred when reading
320*ebfedea0SLionel Sambuc    the first 5 bytes of the first packet. This caused the checking
321*ebfedea0SLionel Sambuc    logic to run at the wrong time and cause an error.
322*ebfedea0SLionel Sambuc
323*ebfedea0SLionel Sambuc    Fixed a problem with specifying cipher. If RC4-MD5 were used,
324*ebfedea0SLionel Sambuc    only the SSLv3 version would be picked up.  Now this will pick
325*ebfedea0SLionel Sambuc    up both SSLv2 and SSLv3 versions. This required changing the
326*ebfedea0SLionel Sambuc    SSL_CIPHER->mask values so that they only mask the ciphers,
327*ebfedea0SLionel Sambuc    digests, authentication, export type and key-exchange algorithms.
328*ebfedea0SLionel Sambuc
329*ebfedea0SLionel Sambuc    I found that when a SSLv23 session is established, a reused
330*ebfedea0SLionel Sambuc    session, of type SSLv3 was attempting to write the SSLv2
331*ebfedea0SLionel Sambuc    ciphers, which were invalid. The SSL_METHOD->put_cipher_by_char
332*ebfedea0SLionel Sambuc    method has been modified so it will only write out cipher which
333*ebfedea0SLionel Sambuc    that method knows about.
334*ebfedea0SLionel Sambuc
335*ebfedea0SLionel Sambuc
336*ebfedea0SLionel Sambuc Changes between 0.8.0 and 0.8.1
337*ebfedea0SLionel Sambuc
338*ebfedea0SLionel Sambuc  *) Mostly bug fixes.
339*ebfedea0SLionel Sambuc     There is an Ephemeral DH cipher problem which is fixed.
340*ebfedea0SLionel Sambuc
341*ebfedea0SLionel Sambuc SSLeay 0.8.0
342*ebfedea0SLionel Sambuc
343*ebfedea0SLionel SambucThis version of SSLeay has quite a lot of things different from the
344*ebfedea0SLionel Sambucprevious version.
345*ebfedea0SLionel Sambuc
346*ebfedea0SLionel SambucBasically check all callback parameters, I will be producing documentation
347*ebfedea0SLionel Sambucabout how to use things in th future.  Currently I'm just getting 080 out
348*ebfedea0SLionel Sambucthe door.  Please not that there are several ways to do everything, and
349*ebfedea0SLionel Sambucmost of the applications in the apps directory are hybrids, some using old
350*ebfedea0SLionel Sambucmethods and some using new methods.
351*ebfedea0SLionel Sambuc
352*ebfedea0SLionel SambucHave a look in demos/bio for some very simple programs and
353*ebfedea0SLionel Sambucapps/s_client.c and apps/s_server.c for some more advanced versions.
354*ebfedea0SLionel SambucNotes are definitly needed but they are a week or so away.
355*ebfedea0SLionel Sambuc
356*ebfedea0SLionel SambucAnyway, some quick nots from Tim Hudson (tjh@cryptsoft.com)
357*ebfedea0SLionel Sambuc---
358*ebfedea0SLionel SambucQuick porting notes for moving from SSLeay-0.6.x to SSLeay-0.8.x to
359*ebfedea0SLionel Sambucget those people that want to move to using the new code base off to
360*ebfedea0SLionel Sambuca quick start.
361*ebfedea0SLionel Sambuc
362*ebfedea0SLionel SambucNote that Eric has tidied up a lot of the areas of the API that were
363*ebfedea0SLionel Sambucless than desirable and renamed quite a few things (as he had to break
364*ebfedea0SLionel Sambucthe API in lots of places anyrate). There are a whole pile of additional
365*ebfedea0SLionel Sambucfunctions for making dealing with (and creating) certificates a lot
366*ebfedea0SLionel Sambuccleaner.
367*ebfedea0SLionel Sambuc
368*ebfedea0SLionel Sambuc01-Jul-97
369*ebfedea0SLionel SambucTim Hudson
370*ebfedea0SLionel Sambuctjh@cryptsoft.com
371*ebfedea0SLionel Sambuc
372*ebfedea0SLionel Sambuc---8<---
373*ebfedea0SLionel Sambuc
374*ebfedea0SLionel SambucTo maintain code that uses both SSLeay-0.6.x and SSLeay-0.8.x you could
375*ebfedea0SLionel Sambucuse something like the following (assuming you #include "crypto.h" which
376*ebfedea0SLionel Sambucis something that you really should be doing).
377*ebfedea0SLionel Sambuc
378*ebfedea0SLionel Sambuc#if SSLEAY_VERSION_NUMBER >= 0x0800
379*ebfedea0SLionel Sambuc#define SSLEAY8
380*ebfedea0SLionel Sambuc#endif
381*ebfedea0SLionel Sambuc
382*ebfedea0SLionel Sambucbuffer.h -> splits into buffer.h and bio.h so you need to include bio.h
383*ebfedea0SLionel Sambuc            too if you are working with BIO internal stuff (as distinct
384*ebfedea0SLionel Sambuc        from simply using the interface in an opaque manner)
385*ebfedea0SLionel Sambuc
386*ebfedea0SLionel Sambuc#include "bio.h"    - required along with "buffer.h" if you write
387*ebfedea0SLionel Sambuc              your own BIO routines as the buffer and bio
388*ebfedea0SLionel Sambuc              stuff that was intermixed has been separated
389*ebfedea0SLionel Sambuc              out
390*ebfedea0SLionel Sambuc
391*ebfedea0SLionel Sambucenvelope.h -> evp.h  (which should have been done ages ago)
392*ebfedea0SLionel Sambuc
393*ebfedea0SLionel SambucInitialisation ... don't forget these or you end up with code that
394*ebfedea0SLionel Sambucis missing the bits required to do useful things (like ciphers):
395*ebfedea0SLionel Sambuc
396*ebfedea0SLionel SambucSSLeay_add_ssl_algorithms()
397*ebfedea0SLionel Sambuc(probably also want SSL_load_error_strings() too but you should have
398*ebfedea0SLionel Sambuc already had that call in place)
399*ebfedea0SLionel Sambuc
400*ebfedea0SLionel SambucSSL_CTX_new()   - requires an extra method parameter
401*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv23_method())
402*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv2_method())
403*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv3_method())
404*ebfedea0SLionel Sambuc
405*ebfedea0SLionel Sambuc          OR to only have the server or the client code
406*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv23_server_method())
407*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv2_server_method())
408*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv3_server_method())
409*ebfedea0SLionel Sambuc          or
410*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv23_client_method())
411*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv2_client_method())
412*ebfedea0SLionel Sambuc              SSL_CTX_new(SSLv3_client_method())
413*ebfedea0SLionel Sambuc
414*ebfedea0SLionel SambucSSL_set_default_verify_paths() ... renamed to the more appropriate
415*ebfedea0SLionel SambucSSL_CTX_set_default_verify_paths()
416*ebfedea0SLionel Sambuc
417*ebfedea0SLionel SambucIf you want to use client certificates then you have to add in a bit
418*ebfedea0SLionel Sambucof extra stuff in that a SSLv3 server sends a list of those CAs that
419*ebfedea0SLionel Sambucit will accept certificates from ... so you have to provide a list to
420*ebfedea0SLionel SambucSSLeay otherwise certain browsers will not send client certs.
421*ebfedea0SLionel Sambuc
422*ebfedea0SLionel SambucSSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file));
423*ebfedea0SLionel Sambuc
424*ebfedea0SLionel Sambuc
425*ebfedea0SLionel SambucX509_NAME_oneline(X)    -> X509_NAME_oneline(X,NULL,0)
426*ebfedea0SLionel Sambuc               or provide a buffer and size to copy the
427*ebfedea0SLionel Sambuc               result into
428*ebfedea0SLionel Sambuc
429*ebfedea0SLionel SambucX509_add_cert ->  X509_STORE_add_cert (and you might want to read the
430*ebfedea0SLionel Sambuc          notes on X509_NAME structure changes too)
431*ebfedea0SLionel Sambuc
432*ebfedea0SLionel Sambuc
433*ebfedea0SLionel SambucVERIFICATION CODE
434*ebfedea0SLionel Sambuc=================
435*ebfedea0SLionel Sambuc
436*ebfedea0SLionel SambucThe codes have all be renamed from VERIFY_ERR_* to X509_V_ERR_* to
437*ebfedea0SLionel Sambucmore accurately reflect things.
438*ebfedea0SLionel Sambuc
439*ebfedea0SLionel SambucThe verification callback args are now packaged differently so that
440*ebfedea0SLionel Sambucextra fields for verification can be added easily in future without
441*ebfedea0SLionel Sambuchaving to break things by adding extra parameters each release :-)
442*ebfedea0SLionel Sambuc
443*ebfedea0SLionel SambucX509_cert_verify_error_string -> X509_verify_cert_error_string
444*ebfedea0SLionel Sambuc
445*ebfedea0SLionel Sambuc
446*ebfedea0SLionel SambucBIO INTERNALS
447*ebfedea0SLionel Sambuc=============
448*ebfedea0SLionel Sambuc
449*ebfedea0SLionel SambucEric has fixed things so that extra flags can be introduced in
450*ebfedea0SLionel Sambucthe BIO layer in future without having to play with all the BIO
451*ebfedea0SLionel Sambucmodules by adding in some macros.
452*ebfedea0SLionel Sambuc
453*ebfedea0SLionel SambucThe ugly stuff using
454*ebfedea0SLionel Sambuc    b->flags ~= (BIO_FLAGS_RW|BIO_FLAGS_SHOULD_RETRY)
455*ebfedea0SLionel Sambucbecomes
456*ebfedea0SLionel Sambuc    BIO_clear_retry_flags(b)
457*ebfedea0SLionel Sambuc
458*ebfedea0SLionel Sambuc    b->flags |= (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)
459*ebfedea0SLionel Sambucbecomes
460*ebfedea0SLionel Sambuc    BIO_set_retry_read(b)
461*ebfedea0SLionel Sambuc
462*ebfedea0SLionel SambucAlso ... BIO_get_retry_flags(b), BIO_set_flags(b)
463*ebfedea0SLionel Sambuc
464*ebfedea0SLionel Sambuc
465*ebfedea0SLionel Sambuc
466*ebfedea0SLionel SambucOTHER THINGS
467*ebfedea0SLionel Sambuc============
468*ebfedea0SLionel Sambuc
469*ebfedea0SLionel SambucX509_NAME has been altered so that it isn't just a STACK ... the STACK
470*ebfedea0SLionel Sambucis now in the "entries" field ... and there are a pile of nice functions
471*ebfedea0SLionel Sambucfor getting at the details in a much cleaner manner.
472*ebfedea0SLionel Sambuc
473*ebfedea0SLionel SambucSSL_CTX has been altered ... "cert" is no longer a direct member of this
474*ebfedea0SLionel Sambucstructure ... things are now down under "cert_store" (see x509_vfy.h) and
475*ebfedea0SLionel Sambucthings are no longer in a CERTIFICATE_CTX but instead in a X509_STORE.
476*ebfedea0SLionel SambucIf your code "knows" about this level of detail then it will need some
477*ebfedea0SLionel Sambucsurgery.
478*ebfedea0SLionel Sambuc
479*ebfedea0SLionel SambucIf you depending on the incorrect spelling of a number of the error codes
480*ebfedea0SLionel Sambucthen you will have to change your code as these have been fixed.
481*ebfedea0SLionel Sambuc
482*ebfedea0SLionel SambucENV_CIPHER "type" got renamed to "nid" and as that is what it actually
483*ebfedea0SLionel Sambuchas been all along so this makes things clearer.
484*ebfedea0SLionel Sambucify_cert_error_string(ctx->error));
485*ebfedea0SLionel Sambuc
486*ebfedea0SLionel SambucSSL_R_NO_CIPHER_WE_TRUST -> SSL_R_NO_CIPHER_LIST
487*ebfedea0SLionel Sambuc            and SSL_R_REUSE_CIPHER_LIST_NOT_ZERO
488*ebfedea0SLionel Sambuc
489*ebfedea0SLionel Sambuc
490*ebfedea0SLionel Sambuc
491*ebfedea0SLionel Sambuc Changes between 0.7.x and 0.8.0
492*ebfedea0SLionel Sambuc
493*ebfedea0SLionel Sambuc  *) There have been lots of changes, mostly the addition of SSLv3.
494*ebfedea0SLionel Sambuc     There have been many additions from people and amongst
495*ebfedea0SLionel Sambuc     others, C2Net has assisted greatly.
496*ebfedea0SLionel Sambuc
497*ebfedea0SLionel Sambuc Changes between 0.7.x and 0.7.x
498*ebfedea0SLionel Sambuc
499*ebfedea0SLionel Sambuc  *) Internal development version only
500*ebfedea0SLionel Sambuc
501*ebfedea0SLionel SambucSSLeay 0.6.6 13-Jan-1997
502*ebfedea0SLionel Sambuc
503*ebfedea0SLionel SambucThe main additions are
504*ebfedea0SLionel Sambuc
505*ebfedea0SLionel Sambuc- assember for x86 DES improvments.
506*ebfedea0SLionel Sambuc  From 191,000 per second on a pentium 100, I now get 281,000.  The inner
507*ebfedea0SLionel Sambuc  loop and the IP/FP modifications are from
508*ebfedea0SLionel Sambuc  Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>.  Many thanks for his
509*ebfedea0SLionel Sambuc  contribution.
510*ebfedea0SLionel Sambuc- The 'DES macros' introduced in 0.6.5 now have 3 types.
511*ebfedea0SLionel Sambuc  DES_PTR1, DES_PTR2 and 'normal'.  As per before, des_opts reports which
512*ebfedea0SLionel Sambuc  is best and there is a summery of mine in crypto/des/options.txt
513*ebfedea0SLionel Sambuc- A few bug fixes.
514*ebfedea0SLionel Sambuc- Added blowfish.  It is not used by SSL but all the other stuff that
515*ebfedea0SLionel Sambuc  deals with ciphers can use it in either ecb, cbc, cfb64 or ofb64 modes.
516*ebfedea0SLionel Sambuc  There are 3 options for optimising Blowfish.  BF_PTR, BF_PTR2 and 'normal'.
517*ebfedea0SLionel Sambuc  BF_PTR2 is pentium/x86 specific.  The correct option is setup in
518*ebfedea0SLionel Sambuc  the 'Configure' script.
519*ebfedea0SLionel Sambuc- There is now a 'get client certificate' callback which can be
520*ebfedea0SLionel Sambuc  'non-blocking'.  If more details are required, let me know.  It will
521*ebfedea0SLionel Sambuc  documented more in SSLv3 when I finish it.
522*ebfedea0SLionel Sambuc- Bug fixes from 0.6.5 including the infamous 'ca' bug.  The 'make test'
523*ebfedea0SLionel Sambuc  now tests the ca program.
524*ebfedea0SLionel Sambuc- Lots of little things modified and tweaked.
525*ebfedea0SLionel Sambuc
526*ebfedea0SLionel Sambuc SSLeay 0.6.5
527*ebfedea0SLionel Sambuc
528*ebfedea0SLionel SambucAfter quite some time (3 months), the new release.  I have been very busy
529*ebfedea0SLionel Sambucfor the last few months and so this is mostly bug fixes and improvments.
530*ebfedea0SLionel Sambuc
531*ebfedea0SLionel SambucThe main additions are
532*ebfedea0SLionel Sambuc
533*ebfedea0SLionel Sambuc- assember for x86 DES.  For all those gcc based systems, this is a big
534*ebfedea0SLionel Sambuc  improvement.  From 117,000 DES operation a second on a pentium 100,
535*ebfedea0SLionel Sambuc  I now get 191,000.  I have also reworked the C version so it
536*ebfedea0SLionel Sambuc  now gives 148,000 DESs per second.
537*ebfedea0SLionel Sambuc- As mentioned above, the inner DES macros now have some more variant that
538*ebfedea0SLionel Sambuc  sometimes help, sometimes hinder performance.  There are now 3 options
539*ebfedea0SLionel Sambuc  DES_PTR (ptr vs array lookup), DES_UNROLL (full vs partial loop unrolling)
540*ebfedea0SLionel Sambuc  and DES_RISC (a more register intensive version of the inner macro).
541*ebfedea0SLionel Sambuc  The crypto/des/des_opts.c program, when compiled and run, will give
542*ebfedea0SLionel Sambuc  an indication of the correct options to use.
543*ebfedea0SLionel Sambuc- The BIO stuff has been improved.  Read doc/bio.doc.  There are now
544*ebfedea0SLionel Sambuc  modules for encryption and base64 encoding and a BIO_printf() function.
545*ebfedea0SLionel Sambuc- The CA program will accept simple one line X509v3 extensions in the
546*ebfedea0SLionel Sambuc  ssleay.cnf file.  Have a look at the example.  Currently this just
547*ebfedea0SLionel Sambuc  puts the text into the certificate as an OCTET_STRING so currently
548*ebfedea0SLionel Sambuc  the more advanced X509v3 data types are not handled but this is enough
549*ebfedea0SLionel Sambuc  for the netscape extensions.
550*ebfedea0SLionel Sambuc- There is the start of a nicer higher level interface to the X509
551*ebfedea0SLionel Sambuc  strucutre.
552*ebfedea0SLionel Sambuc- Quite a lot of bug fixes.
553*ebfedea0SLionel Sambuc- CRYPTO_malloc_init()  (or CRYPTO_set_mem_functions()) can be used
554*ebfedea0SLionel Sambuc  to define the malloc(), free() and realloc() routines to use
555*ebfedea0SLionel Sambuc  (look in crypto/crypto.h).  This is mostly needed for Windows NT/95 when
556*ebfedea0SLionel Sambuc  using DLLs and mixing CRT libraries.
557*ebfedea0SLionel Sambuc
558*ebfedea0SLionel SambucIn general, read the 'VERSION' file for changes and be aware that some of
559*ebfedea0SLionel Sambucthe new stuff may not have been tested quite enough yet, so don't just plonk
560*ebfedea0SLionel Sambucin SSLeay 0.6.5 when 0.6.4 used to work and expect nothing to break.
561*ebfedea0SLionel Sambuc
562*ebfedea0SLionel SambucSSLeay 0.6.4 30/08/96 eay
563*ebfedea0SLionel Sambuc
564*ebfedea0SLionel SambucI've just finished some test builds on Windows NT, Windows 3.1, Solaris 2.3,
565*ebfedea0SLionel SambucSolaris 2.5, Linux, IRIX, HPUX 10 and everthing seems to work :-).
566*ebfedea0SLionel Sambuc
567*ebfedea0SLionel SambucThe main changes in this release
568*ebfedea0SLionel Sambuc
569*ebfedea0SLionel Sambuc- Thread safe.  have a read of doc/threads.doc and play in the mt directory.
570*ebfedea0SLionel Sambuc  For anyone using 0.6.3 with threads, I found 2 major errors so consider
571*ebfedea0SLionel Sambuc  moving to 0.6.4.  I have a test program that builds under NT and
572*ebfedea0SLionel Sambuc  solaris.
573*ebfedea0SLionel Sambuc- The get session-id callback has changed.  Have a read of doc/callback.doc.
574*ebfedea0SLionel Sambuc- The X509_cert_verify callback (the SSL_verify callback) now
575*ebfedea0SLionel Sambuc  has another argument.  Have a read of doc/callback.doc
576*ebfedea0SLionel Sambuc- 'ca -preserve', sign without re-ordering the DN.  Not tested much.
577*ebfedea0SLionel Sambuc- VMS support.
578*ebfedea0SLionel Sambuc- Compile time memory leak detection can now be built into SSLeay.
579*ebfedea0SLionel Sambuc  Read doc/memory.doc
580*ebfedea0SLionel Sambuc- CONF routines now understand '\', '\n', '\r' etc.  What this means is that
581*ebfedea0SLionel Sambuc  the  SPKAC object mentioned in doc/ns-ca.doc can be on multiple lines.
582*ebfedea0SLionel Sambuc- 'ssleay ciphers' added, lists the default cipher list for SSLeay.
583*ebfedea0SLionel Sambuc- RC2 key setup is now compatable with Netscape.
584*ebfedea0SLionel Sambuc- Modifed server side of SSL implementation, big performance difference when
585*ebfedea0SLionel Sambuc      using session-id reuse.
586*ebfedea0SLionel Sambuc
587*ebfedea0SLionel Sambuc0.6.3
588*ebfedea0SLionel Sambuc
589*ebfedea0SLionel SambucBug fixes and the addition of some nice stuff to the 'ca' program.
590*ebfedea0SLionel SambucHave a read of doc/ns-ca.doc for how hit has been modified so
591*ebfedea0SLionel Sambucit can be driven from a CGI script.  The CGI script is not provided,
592*ebfedea0SLionel Sambucbut that is just being left as an excersize for the reader :-).
593*ebfedea0SLionel Sambuc
594*ebfedea0SLionel Sambuc0.6.2
595*ebfedea0SLionel Sambuc
596*ebfedea0SLionel SambucThis is most bug fixes and functionality improvements.
597*ebfedea0SLionel Sambuc
598*ebfedea0SLionel SambucAdditions are
599*ebfedea0SLionel Sambuc- More thread debugging patches, the thread stuff is still being
600*ebfedea0SLionel Sambuc  tested, but for those keep to play with stuff, have a look in
601*ebfedea0SLionel Sambuc  crypto/cryptlib.c.  The application needs to define 1 (or optionaly
602*ebfedea0SLionel Sambuc  a second) callback that is used to implement locking.  Compiling
603*ebfedea0SLionel Sambuc  with LOCK_DEBUG spits out lots of locking crud :-).
604*ebfedea0SLionel Sambuc  This is what I'm currently working on.
605*ebfedea0SLionel Sambuc- SSL_CTX_set_default_passwd_cb() can be used to define the callback
606*ebfedea0SLionel Sambuc  function used in the SSL*_file() functions used to load keys.  I was
607*ebfedea0SLionel Sambuc  always of the opinion that people should call
608*ebfedea0SLionel Sambuc  PEM_read_RSAPrivateKey() and pass the callback they want to use, but
609*ebfedea0SLionel Sambuc  it appears they just want to use the SSL_*_file() function() :-(.
610*ebfedea0SLionel Sambuc- 'enc' now has a -kfile so a key can be read from a file.  This is
611*ebfedea0SLionel Sambuc  mostly used so that the passwd does not appear when using 'ps',
612*ebfedea0SLionel Sambuc  which appears imposible to stop under solaris.
613*ebfedea0SLionel Sambuc- X509v3 certificates now work correctly.  I even have more examples
614*ebfedea0SLionel Sambuc  in my tests :-).  There is now a X509_EXTENSION type that is used in
615*ebfedea0SLionel Sambuc  X509v3 certificates and CRLv2.
616*ebfedea0SLionel Sambuc- Fixed that signature type error :-(
617*ebfedea0SLionel Sambuc- Fixed quite a few potential memory leaks and problems when reusing
618*ebfedea0SLionel Sambuc  X509, CRL and REQ structures.
619*ebfedea0SLionel Sambuc- EVP_set_pw_prompt() now sets the library wide default password
620*ebfedea0SLionel Sambuc  prompt.
621*ebfedea0SLionel Sambuc- The 'pkcs7' command will now, given the -print_certs flag, output in
622*ebfedea0SLionel Sambuc  pem format, all certificates and CRL contained within.  This is more
623*ebfedea0SLionel Sambuc  of a pre-emtive thing for the new verisign distribution method.  I
624*ebfedea0SLionel Sambuc  should also note, that this also gives and example in code, of how
625*ebfedea0SLionel Sambuc  to do this :-), or for that matter, what is involved in going the
626*ebfedea0SLionel Sambuc  other way (list of certs and crl -> pkcs7).
627*ebfedea0SLionel Sambuc- Added RSA's DESX to the DES library.  It is also available via the
628*ebfedea0SLionel Sambuc  EVP_desx_cbc() method and via 'enc desx'.
629*ebfedea0SLionel Sambuc
630*ebfedea0SLionel SambucSSLeay 0.6.1
631*ebfedea0SLionel Sambuc
632*ebfedea0SLionel SambucThe main functional changes since 0.6.0 are as follows
633*ebfedea0SLionel Sambuc- Bad news, the Microsoft 060 DLL's are not compatable, but the good news is
634*ebfedea0SLionel Sambuc  that from now on, I'll keep the .def numbers the same so they will be.
635*ebfedea0SLionel Sambuc- RSA private key operations are about 2 times faster that 0.6.0
636*ebfedea0SLionel Sambuc- The SSL_CTX now has more fields so default values can be put against
637*ebfedea0SLionel Sambuc  it.  When an SSL structure is created, these default values are used
638*ebfedea0SLionel Sambuc  but can be overwritten.  There are defaults for cipher, certificate,
639*ebfedea0SLionel Sambuc  private key, verify mode and callback.  This means SSL session
640*ebfedea0SLionel Sambuc  creation can now be
641*ebfedea0SLionel Sambuc  ssl=SSL_new()
642*ebfedea0SLionel Sambuc  SSL_set_fd(ssl,sock);
643*ebfedea0SLionel Sambuc  SSL_accept(ssl)
644*ebfedea0SLionel Sambuc  ....
645*ebfedea0SLionel Sambuc  All the other uglyness with having to keep a global copy of the
646*ebfedea0SLionel Sambuc  private key and certificate/verify mode in the server is now gone.
647*ebfedea0SLionel Sambuc- ssl/ssltest.c - one process talking SSL to its self for testing.
648*ebfedea0SLionel Sambuc- Storage of Session-id's can be controled via a session_cache_mode
649*ebfedea0SLionel Sambuc  flag.  There is also now an automatic default flushing of
650*ebfedea0SLionel Sambuc  old session-id's.
651*ebfedea0SLionel Sambuc- The X509_cert_verify() function now has another parameter, this
652*ebfedea0SLionel Sambuc  should not effect most people but it now means that the reason for
653*ebfedea0SLionel Sambuc  the failure to verify is now available via SSL_get_verify_result(ssl).
654*ebfedea0SLionel Sambuc  You don't have to use a global variable.
655*ebfedea0SLionel Sambuc- SSL_get_app_data() and SSL_set_app_data() can be used to keep some
656*ebfedea0SLionel Sambuc  application data against the SSL structure.  It is upto the application
657*ebfedea0SLionel Sambuc  to free the data.  I don't use it, but it is available.
658*ebfedea0SLionel Sambuc- SSL_CTX_set_cert_verify_callback() can be used to specify a
659*ebfedea0SLionel Sambuc  verify callback function that completly replaces my certificate
660*ebfedea0SLionel Sambuc  verification code.  Xcert should be able to use this :-).
661*ebfedea0SLionel Sambuc  The callback is of the form int app_verify_callback(arg,ssl,cert).
662*ebfedea0SLionel Sambuc  This needs to be documented more.
663*ebfedea0SLionel Sambuc- I have started playing with shared library builds, have a look in
664*ebfedea0SLionel Sambuc  the shlib directory.  It is very simple.  If you need a numbered
665*ebfedea0SLionel Sambuc  list of functions, have a look at misc/crypto.num and misc/ssl.num.
666*ebfedea0SLionel Sambuc- There is some stuff to do locking to make the library thread safe.
667*ebfedea0SLionel Sambuc  I have only started this stuff and have not finished.  If anyone is
668*ebfedea0SLionel Sambuc  keen to do so, please send me the patches when finished.
669*ebfedea0SLionel Sambuc
670*ebfedea0SLionel SambucSo I have finally made most of the additions to the SSL interface that
671*ebfedea0SLionel SambucI thought were needed.
672*ebfedea0SLionel Sambuc
673*ebfedea0SLionel SambucThere will probably be a pause before I make any non-bug/documentation
674*ebfedea0SLionel Sambucrelated changes to SSLeay since I'm feeling like a bit of a break.
675*ebfedea0SLionel Sambuc
676*ebfedea0SLionel Sambuceric - 12 Jul 1996
677*ebfedea0SLionel SambucI saw recently a comment by some-one that we now seem to be entering
678*ebfedea0SLionel Sambucthe age of perpetual Beta software.
679*ebfedea0SLionel SambucPioneered by packages like linux but refined to an art form by
680*ebfedea0SLionel Sambucnetscape.
681*ebfedea0SLionel Sambuc
682*ebfedea0SLionel SambucI too wish to join this trend with the anouncement of SSLeay 0.6.0 :-).
683*ebfedea0SLionel Sambuc
684*ebfedea0SLionel SambucThere are quite a large number of sections that are 'works in
685*ebfedea0SLionel Sambucprogress' in this package.  I will also list the major changes and
686*ebfedea0SLionel Sambucwhat files you should read.
687*ebfedea0SLionel Sambuc
688*ebfedea0SLionel SambucBIO - this is the new IO structure being used everywhere in SSLeay.  I
689*ebfedea0SLionel Sambucstarted out developing this because of microsoft, I wanted a mechanism
690*ebfedea0SLionel Sambucto callback to the application for all IO, so Windows 3.1 DLL
691*ebfedea0SLionel Sambucperversion could be hidden from me and the 15 different ways to write
692*ebfedea0SLionel Sambucto a file under NT would also not be dictated by me at library build
693*ebfedea0SLionel Sambuctime.  What the 'package' is is an API for a data structure containing
694*ebfedea0SLionel Sambucfunctions.  IO interfaces can be written to conform to the
695*ebfedea0SLionel Sambucspecification.  This in not intended to hide the underlying data type
696*ebfedea0SLionel Sambucfrom the application, but to hide it from SSLeay :-).
697*ebfedea0SLionel SambucI have only really finished testing the FILE * and socket/fd modules.
698*ebfedea0SLionel SambucThere are also 'filter' BIO's.  Currently I have only implemented
699*ebfedea0SLionel Sambucmessage digests, and it is in use in the dgst application.  This
700*ebfedea0SLionel Sambucfunctionality will allow base64/encrypto/buffering modules to be
701*ebfedea0SLionel Sambuc'push' into a BIO without it affecting the semantics.  I'm also
702*ebfedea0SLionel Sambucworking on an SSL BIO which will hide the SSL_accept()/SLL_connet()
703*ebfedea0SLionel Sambucfrom an event loop which uses the interface.
704*ebfedea0SLionel SambucIt is also possible to 'attach' callbacks to a BIO so they get called
705*ebfedea0SLionel Sambucbefore and after each operation, alowing extensive debug output
706*ebfedea0SLionel Sambucto be generated (try running dgst with -d).
707*ebfedea0SLionel Sambuc
708*ebfedea0SLionel SambucUnfortunaly in the conversion from 0.5.x to 0.6.0, quite a few
709*ebfedea0SLionel Sambucfunctions that used to take FILE *, now take BIO *.
710*ebfedea0SLionel SambucThe wrappers are easy to write
711*ebfedea0SLionel Sambuc
712*ebfedea0SLionel Sambucfunction_fp(fp,x)
713*ebfedea0SLionel SambucFILE *fp;
714*ebfedea0SLionel Sambuc    {
715*ebfedea0SLionel Sambuc    BIO *b;
716*ebfedea0SLionel Sambuc    int ret;
717*ebfedea0SLionel Sambuc
718*ebfedea0SLionel Sambuc    if ((b=BIO_new(BIO_s_file())) == NULL) error.....
719*ebfedea0SLionel Sambuc    BIO_set_fp(b,fp,BIO_NOCLOSE);
720*ebfedea0SLionel Sambuc    ret=function_bio(b,x);
721*ebfedea0SLionel Sambuc    BIO_free(b);
722*ebfedea0SLionel Sambuc    return(ret);
723*ebfedea0SLionel Sambuc    }
724*ebfedea0SLionel SambucRemember, there are no functions that take FILE * in SSLeay when
725*ebfedea0SLionel Sambuccompiled for Windows 3.1 DLL's.
726*ebfedea0SLionel Sambuc
727*ebfedea0SLionel Sambuc--
728*ebfedea0SLionel SambucI have added a general EVP_PKEY type that can hold a public/private
729*ebfedea0SLionel Sambuckey.  This is now what is used by the EVP_ functions and is passed
730*ebfedea0SLionel Sambucaround internally.  I still have not done the PKCS#8 stuff, but
731*ebfedea0SLionel SambucX509_PKEY is defined and waiting :-)
732*ebfedea0SLionel Sambuc
733*ebfedea0SLionel Sambuc--
734*ebfedea0SLionel SambucFor a full function name listings, have a look at ms/crypt32.def and
735*ebfedea0SLionel Sambucms/ssl32.def.  These are auto-generated but are complete.
736*ebfedea0SLionel SambucThings like ASN1_INTEGER_get() have been added and are in here if you
737*ebfedea0SLionel Sambuclook.  I have renamed a few things, again, have a look through the
738*ebfedea0SLionel Sambucfunction list and you will probably find what you are after.  I intend
739*ebfedea0SLionel Sambucto at least put a one line descrition for each one.....
740*ebfedea0SLionel Sambuc
741*ebfedea0SLionel Sambuc--
742*ebfedea0SLionel SambucMicrosoft - thats what this release is about, read the MICROSOFT file.
743*ebfedea0SLionel Sambuc
744*ebfedea0SLionel Sambuc--
745*ebfedea0SLionel SambucMulti-threading support.  I have started hunting through the code and
746*ebfedea0SLionel Sambucflaging where things need to be done.  In a state of work but high on
747*ebfedea0SLionel Sambucthe list.
748*ebfedea0SLionel Sambuc
749*ebfedea0SLionel Sambuc--
750*ebfedea0SLionel SambucFor random numbers, edit e_os.h and set DEVRANDOM (it's near the top)
751*ebfedea0SLionel Sambucbe be you random data device, otherwise 'RFILE' in e_os.h
752*ebfedea0SLionel Sambucwill be used, in your home directory.  It will be updated
753*ebfedea0SLionel Sambucperiodically.  The environment variable RANDFILE will override this
754*ebfedea0SLionel Sambucchoice and read/write to that file instead.  DEVRANDOM is used in
755*ebfedea0SLionel Sambucconjunction to the RFILE/RANDFILE.  If you wish to 'seed' the random
756*ebfedea0SLionel Sambucnumber generator, pick on one of these files.
757*ebfedea0SLionel Sambuc
758*ebfedea0SLionel Sambuc--
759*ebfedea0SLionel Sambuc
760*ebfedea0SLionel SambucThe list of things to read and do
761*ebfedea0SLionel Sambuc
762*ebfedea0SLionel Sambucdgst -d
763*ebfedea0SLionel Sambucs_client -state (this uses a callback placed in the SSL state loop and
764*ebfedea0SLionel Sambuc        will be used else-where to help debug/monitor what
765*ebfedea0SLionel Sambuc        is happening.)
766*ebfedea0SLionel Sambuc
767*ebfedea0SLionel Sambucdoc/why.doc
768*ebfedea0SLionel Sambucdoc/bio.doc <- hmmm, needs lots of work.
769*ebfedea0SLionel Sambucdoc/bss_file.doc <- one that is working :-)
770*ebfedea0SLionel Sambucdoc/session.doc <- it has changed
771*ebfedea0SLionel Sambucdoc/speed.doc
772*ebfedea0SLionel Sambuc also play with ssleay version -a.  I have now added a SSLeay()
773*ebfedea0SLionel Sambuc function that returns a version number, eg 0600 for this release
774*ebfedea0SLionel Sambuc which is primarily to be used to check DLL version against the
775*ebfedea0SLionel Sambuc application.
776*ebfedea0SLionel Sambucutil/*  Quite a few will not interest people, but some may, like
777*ebfedea0SLionel Sambuc mk1mf.pl, mkdef.pl,
778*ebfedea0SLionel Sambucutil/do_ms.sh
779*ebfedea0SLionel Sambuc
780*ebfedea0SLionel Sambuctry
781*ebfedea0SLionel Sambuccc -Iinclude -Icrypto -c crypto/crypto.c
782*ebfedea0SLionel Sambuccc -Iinclude -Issl -c ssl/ssl.c
783*ebfedea0SLionel SambucYou have just built the SSLeay libraries as 2 object files :-)
784*ebfedea0SLionel Sambuc
785*ebfedea0SLionel SambucHave a general rummage around in the bin stall directory and look at
786*ebfedea0SLionel Sambucwhat is in there, like CA.sh and c_rehash
787*ebfedea0SLionel Sambuc
788*ebfedea0SLionel SambucThere are lots more things but it is 12:30am on a Friday night and I'm
789*ebfedea0SLionel Sambucheading home :-).
790*ebfedea0SLionel Sambuc
791*ebfedea0SLionel Sambuceric 22-Jun-1996
792*ebfedea0SLionel SambucThis version has quite a few major bug fixes and improvements.  It DOES NOT
793*ebfedea0SLionel Sambucdo SSLv3 yet.
794*ebfedea0SLionel Sambuc
795*ebfedea0SLionel SambucThe main things changed
796*ebfedea0SLionel Sambuc- A Few days ago I added the s_mult application to ssleay which is
797*ebfedea0SLionel Sambuc  a demo of an SSL server running in an event loop type thing.
798*ebfedea0SLionel Sambuc  It supports non-blocking IO, I have finally gotten it right, SSL_accept()
799*ebfedea0SLionel Sambuc  can operate in non-blocking IO mode, look at the code to see how :-).
800*ebfedea0SLionel Sambuc  Have a read of doc/s_mult as well.  This program leaks memory and
801*ebfedea0SLionel Sambuc  file descriptors everywhere but I have not cleaned it up yet.
802*ebfedea0SLionel Sambuc  This is a demo of how to do non-blocking IO.
803*ebfedea0SLionel Sambuc- The SSL session management has been 'worked over' and there is now
804*ebfedea0SLionel Sambuc  quite an expansive set of functions to manipulate them.  Have a read of
805*ebfedea0SLionel Sambuc  doc/session.doc for some-things I quickly whipped up about how it now works.
806*ebfedea0SLionel Sambuc  This assume you know the SSLv2 protocol :-)
807*ebfedea0SLionel Sambuc- I can now read/write the netscape certificate format, use the
808*ebfedea0SLionel Sambuc  -inform/-outform  'net' options to the x509 command.  I have not put support
809*ebfedea0SLionel Sambuc  for this type in the other demo programs, but it would be easy to add.
810*ebfedea0SLionel Sambuc- asn1parse and 'enc' have been modified so that when reading base64
811*ebfedea0SLionel Sambuc  encoded files (pem format), they do not require '-----BEGIN' header lines.
812*ebfedea0SLionel Sambuc  The 'enc' program had a buffering bug fixed, it can be used as a general
813*ebfedea0SLionel Sambuc  base64 -> binary -> base64 filter by doing 'enc -a -e' and 'enc -a -d'
814*ebfedea0SLionel Sambuc  respecivly.  Leaving out the '-a' flag in this case makes the 'enc' command
815*ebfedea0SLionel Sambuc  into a form of 'cat'.
816*ebfedea0SLionel Sambuc- The 'x509' and 'req' programs have been fixed and modified a little so
817*ebfedea0SLionel Sambuc  that they generate self-signed certificates correctly.  The test
818*ebfedea0SLionel Sambuc  script actually generates a 'CA' certificate and then 'signs' a
819*ebfedea0SLionel Sambuc  'user' certificate.  Have a look at this shell script (test/sstest)
820*ebfedea0SLionel Sambuc  to see how things work, it tests most possible combinations of what can
821*ebfedea0SLionel Sambuc  be done.
822*ebfedea0SLionel Sambuc- The 'SSL_set_pref_cipher()' function has been 'fixed' and the prefered name
823*ebfedea0SLionel Sambuc  of SSL_set_cipher_list() is now the correct API (stops confusion :-).
824*ebfedea0SLionel Sambuc  If this function is used in the client, only the specified ciphers can
825*ebfedea0SLionel Sambuc  be used, with preference given to the order the ciphers were listed.
826*ebfedea0SLionel Sambuc  For the server, if this is used, only the specified ciphers will be used
827*ebfedea0SLionel Sambuc  to accept connections.  If this 'option' is not used, a default set of
828*ebfedea0SLionel Sambuc  ciphers will be used.  The SSL_CTX_set_cipher_list(SSL_CTX *ctx) sets this
829*ebfedea0SLionel Sambuc  list for all ciphers started against the SSL_CTX.  So the order is
830*ebfedea0SLionel Sambuc  SSL cipher_list, if not present, SSL_CTX cipher list, if not
831*ebfedea0SLionel Sambuc  present, then the library default.
832*ebfedea0SLionel Sambuc  What this means is that normally ciphers like
833*ebfedea0SLionel Sambuc  NULL-MD5 will never be used.  The only way this cipher can be used
834*ebfedea0SLionel Sambuc  for both ends to specify to use it.
835*ebfedea0SLionel Sambuc  To enable or disable ciphers in the library at build time, modify the
836*ebfedea0SLionel Sambuc  first field for the cipher in the ssl_ciphers array in ssl/ssl_lib.c.
837*ebfedea0SLionel Sambuc  This file also contains the 'pref_cipher' list which is the default
838*ebfedea0SLionel Sambuc  cipher preference order.
839*ebfedea0SLionel Sambuc- I'm not currently sure if the 'rsa -inform net' and the 'rsa -outform net'
840*ebfedea0SLionel Sambuc  options work.  They should, and they enable loading and writing the
841*ebfedea0SLionel Sambuc  netscape rsa private key format.  I will be re-working this section of
842*ebfedea0SLionel Sambuc  SSLeay for the next version.  What is currently in place is a quick and
843*ebfedea0SLionel Sambuc  dirty hack.
844*ebfedea0SLionel Sambuc- I've re-written parts of the bignum library.  This gives speedups
845*ebfedea0SLionel Sambuc  for all platforms.  I now provide assembler for use under Windows NT.
846*ebfedea0SLionel Sambuc  I have not tested the Windows 3.1 assembler but it is quite simple code.
847*ebfedea0SLionel Sambuc  This gives RSAprivate_key operation encryption times of 0.047s (512bit key)
848*ebfedea0SLionel Sambuc  and 0.230s (1024bit key) on a pentium 100 which I consider reasonable.
849*ebfedea0SLionel Sambuc  Basically the times available under linux/solaris x86 can be achieve under
850*ebfedea0SLionel Sambuc  Windows NT.  I still don't know how these times compare to RSA's BSAFE
851*ebfedea0SLionel Sambuc  library but I have been emailing with people and with their help, I should
852*ebfedea0SLionel Sambuc  be able to get my library's quite a bit faster still (more algorithm changes).
853*ebfedea0SLionel Sambuc  The object file crypto/bn/asm/x86-32.obj should be used when linking
854*ebfedea0SLionel Sambuc  under NT.
855*ebfedea0SLionel Sambuc- 'make makefile.one' in the top directory will generate a single makefile
856*ebfedea0SLionel Sambuc  called 'makefile.one'  This makefile contains no perl references and
857*ebfedea0SLionel Sambuc  will build the SSLeay library into the 'tmp' and 'out' directories.
858*ebfedea0SLionel Sambuc  util/mk1mf.pl >makefile.one is how this makefile is
859*ebfedea0SLionel Sambuc  generated.  The mk1mf.pl command take several option to generate the
860*ebfedea0SLionel Sambuc  makefile for use with cc, gcc, Visual C++ and Borland C++.  This is
861*ebfedea0SLionel Sambuc  still under development.  I have only build .lib's for NT and MSDOS
862*ebfedea0SLionel Sambuc  I will be working on this more.  I still need to play with the
863*ebfedea0SLionel Sambuc  correct compiler setups for these compilers and add some more stuff but
864*ebfedea0SLionel Sambuc  basically if you just want to compile the library
865*ebfedea0SLionel Sambuc  on a 'non-unix' platform, this is a very very good file to start with :-).
866*ebfedea0SLionel Sambuc  Have a look in the 'microsoft' directory for my current makefiles.
867*ebfedea0SLionel Sambuc  I have not yet modified things to link with sockets under Windows NT.
868*ebfedea0SLionel Sambuc  You guys should be able to do this since this is actually outside of the
869*ebfedea0SLionel Sambuc  SSLeay scope :-).  I will be doing it for myself soon.
870*ebfedea0SLionel Sambuc  util/mk1mf.pl takes quite a few options including no-rc, rsaref  and no-sock
871*ebfedea0SLionel Sambuc  to build without RC2/RC4, to require RSAref for linking, and to
872*ebfedea0SLionel Sambuc  build with no socket code.
873*ebfedea0SLionel Sambuc
874*ebfedea0SLionel Sambuc- Oh yes, the cipher that was reported to be compatible with RSA's RC2 cipher
875*ebfedea0SLionel Sambuc  that was posted to sci.crypt has been added to the library and SSL.
876*ebfedea0SLionel Sambuc  I take the view that if RC2 is going to be included in a standard,
877*ebfedea0SLionel Sambuc  I'll include the cipher to make my package complete.
878*ebfedea0SLionel Sambuc  There are NO_RC2, NO_RC4 and NO_IDEA macros to remove these ciphers
879*ebfedea0SLionel Sambuc  at compile time.  I have not tested this recently but it should all work
880*ebfedea0SLionel Sambuc  and if you are in the USA and don't want RSA threatening to sue you,
881*ebfedea0SLionel Sambuc  you could probably remove the RC4/RC2 code inside these sections.
882*ebfedea0SLionel Sambuc  I may in the future include a perl script that does this code
883*ebfedea0SLionel Sambuc  removal automatically for those in the USA :-).
884*ebfedea0SLionel Sambuc- I have removed all references to sed in the makefiles.  So basically,
885*ebfedea0SLionel Sambuc  the development environment requires perl and sh.  The build environment
886*ebfedea0SLionel Sambuc  does not (use the makefile.one makefile).
887*ebfedea0SLionel Sambuc  The Configure script still requires perl, this will probably stay that way
888*ebfedea0SLionel Sambuc  since I have perl for Windows NT :-).
889*ebfedea0SLionel Sambuc
890*ebfedea0SLionel Sambuceric (03-May-1996)
891*ebfedea0SLionel Sambuc
892*ebfedea0SLionel SambucPS Have a look in the VERSION file for more details on the changes and
893*ebfedea0SLionel Sambuc   bug fixes.
894*ebfedea0SLionel SambucI have fixed a few bugs, added alpha and x86 assembler and generally cleaned
895*ebfedea0SLionel Sambucthings up.  This version will be quite stable, mostly because I'm on
896*ebfedea0SLionel Sambucholidays until 10-March-1996.  For any problems in the interum, send email
897*ebfedea0SLionel Sambucto Tim Hudson <tjh@mincom.oz.au>.
898*ebfedea0SLionel Sambuc
899*ebfedea0SLionel SambucSSLeay 0.5.0
900*ebfedea0SLionel Sambuc
901*ebfedea0SLionel Sambuc12-12-95
902*ebfedea0SLionel SambucThis is going out before it should really be released.
903*ebfedea0SLionel Sambuc
904*ebfedea0SLionel SambucI leave for 11 weeks holidays on the 22-12-95 and so I either sit on
905*ebfedea0SLionel Sambucthis for 11 weeks or get things out.  It is still going to change a
906*ebfedea0SLionel Sambuclot in the next week so if you do grab this version, please test and
907*ebfedea0SLionel Sambucgive me feed back ASAP, inculuding questions on how to do things with
908*ebfedea0SLionel Sambucthe library.  This will prompt me to write documentation so I don't
909*ebfedea0SLionel Sambuchave to answer the same question again :-).
910*ebfedea0SLionel Sambuc
911*ebfedea0SLionel SambucThis 'pre' release version is for people who are interested in the
912*ebfedea0SLionel Sambuclibrary.  The applications will have to be changed to use
913*ebfedea0SLionel Sambucthe new version of the SSL interface.  I intend to finish more
914*ebfedea0SLionel Sambucdocumentation before I leave but until then, look at the programs in
915*ebfedea0SLionel Sambucthe apps directory.  As far as code goes, it is much much nicer than
916*ebfedea0SLionel Sambucthe old version.
917*ebfedea0SLionel Sambuc
918*ebfedea0SLionel SambucThe current library works, has no memory leaks (as far as I can tell)
919*ebfedea0SLionel Sambucand is far more bug free that 0.4.5d.  There are no global variable of
920*ebfedea0SLionel Sambucconsequence (I believe) and I will produce some documentation that
921*ebfedea0SLionel Sambuctell where to look for those people that do want to do multi-threaded
922*ebfedea0SLionel Sambucstuff.
923*ebfedea0SLionel Sambuc
924*ebfedea0SLionel SambucThere should be more documentation.  Have a look in the
925*ebfedea0SLionel Sambucdoc directory.  I'll be adding more before I leave, it is a start
926*ebfedea0SLionel Sambucby mostly documents the crypto library.  Tim Hudson will update
927*ebfedea0SLionel Sambucthe web page ASAP.  The spelling and grammar are crap but
928*ebfedea0SLionel Sambucit is better than nothing :-)
929*ebfedea0SLionel Sambuc
930*ebfedea0SLionel SambucReasons to start playing with version 0.5.0
931*ebfedea0SLionel Sambuc- All the programs in the apps directory build into one ssleay binary.
932*ebfedea0SLionel Sambuc- There is a new version of the 'req' program that generates certificate
933*ebfedea0SLionel Sambuc  requests, there is even documentation for this one :-)
934*ebfedea0SLionel Sambuc- There is a demo certification authorithy program.  Currently it will
935*ebfedea0SLionel Sambuc  look at the simple database and update it.  It will generate CRL from
936*ebfedea0SLionel Sambuc  the data base.  You need to edit the database by hand to revoke a
937*ebfedea0SLionel Sambuc  certificate, it is my aim to use perl5/Tk but I don't have time to do
938*ebfedea0SLionel Sambuc  this right now.  It will generate the certificates but the management
939*ebfedea0SLionel Sambuc  scripts still need to be written.  This is not a hard task.
940*ebfedea0SLionel Sambuc- Things have been cleaned up alot.
941*ebfedea0SLionel Sambuc- Have a look at the enc and dgst programs in the apps directory.
942*ebfedea0SLionel Sambuc- It supports v3 of x509 certiticates.
943*ebfedea0SLionel Sambuc
944*ebfedea0SLionel Sambuc
945*ebfedea0SLionel SambucMajor things missing.
946*ebfedea0SLionel Sambuc- I have been working on (and thinging about) the distributed x509
947*ebfedea0SLionel Sambuc  hierachy problem.  I have not had time to put my solution in place.
948*ebfedea0SLionel Sambuc  It will have to wait until I come back.
949*ebfedea0SLionel Sambuc- I have not put in CRL checking in the certificate verification but
950*ebfedea0SLionel Sambuc  it would not be hard to do.  I was waiting until I could generate my
951*ebfedea0SLionel Sambuc  own CRL (which has only been in the last week) and I don't have time
952*ebfedea0SLionel Sambuc  to put it in correctly.
953*ebfedea0SLionel Sambuc- Montgomery multiplication need to be implemented.  I know the
954*ebfedea0SLionel Sambuc  algorithm, just ran out of time.
955*ebfedea0SLionel Sambuc- PKCS#7.  I can load and write the DER version.  I need to re-work
956*ebfedea0SLionel Sambuc  things to support BER (if that means nothing, read the ASN1 spec :-).
957*ebfedea0SLionel Sambuc- Testing of the higher level digital envelope routines.  I have not
958*ebfedea0SLionel Sambuc  played with the *_seal() and *_open() type functions.  They are
959*ebfedea0SLionel Sambuc  written but need testing.  The *_sign() and *_verify() functions are
960*ebfedea0SLionel Sambuc  rock solid.
961*ebfedea0SLionel Sambuc- PEM.  Doing this and PKCS#7 have been dependant on the distributed
962*ebfedea0SLionel Sambuc  x509 heirachy problem.  I started implementing my ideas, got
963*ebfedea0SLionel Sambuc  distracted writing a CA program and then ran out of time.  I provide
964*ebfedea0SLionel Sambuc  the functionality of RSAref at least.
965*ebfedea0SLionel Sambuc- Re work the asm. code for the x86.  I've changed by low level bignum
966*ebfedea0SLionel Sambuc  interface again, so I really need to tweak the x86 stuff.  gcc is
967*ebfedea0SLionel Sambuc  good enough for the other boxes.
968*ebfedea0SLionel Sambuc
969