Import of old SSLeay release: SSLeay 0.9.0b
[openssl.git] / crypto / des / VERSION
1         Defining SIGACTION causes sigaction() to be used instead of signal().
2         SIGUSR1/SIGUSR2 are no longer mapped in the read tty stuff because it
3         can cause problems.  This should hopefully not affect normal
4         applications.
5
6 Version 4.04
7         Fixed a few tests in destest.  Also added x86 assember for
8         des_ncbc_encrypt() which is the standard cbc mode function.
9         This makes a very very large performace difference.
10         Ariel Glenn ariel@columbia.edu reports that the terminal
11         'turn echo off' can return (errno == EINVAL) under solaris
12         when redirection is used.  So I now catch that as well as ENOTTY.
13
14
15 Version 4.03
16         Left a static out of enc_write.c, which caused to buffer to be
17         continiously malloc()ed.  Does anyone use these functions?  I keep
18         on feeling like removing them since I only had these in there
19         for a version of kerberised login.  Anyway, this was pointed out
20         by Theo de Raadt <deraadt@cvs.openbsd.org>
21         The 'n' bit ofb code was wrong, it was not shifting the shift
22         register. It worked correctly for n == 64.  Thanks to
23         Gigi Ankeny <Gigi.Ankeny@Eng.Sun.COM> for pointing this one out.
24
25 Version 4.02
26         I was doing 'if (memcmp(weak_keys[i],key,sizeof(key)) == 0)'
27         when checking for weak keys which is wrong :-(, pointed out by
28         Markus F.X.J. Oberhumer <markus.oberhumer@jk.uni-linz.ac.at>.
29
30 Version 4.01
31         Even faster inner loop in the DES assembler for x86 and a modification
32         for IP/FP which is faster on x86.  Both of these changes are
33         from Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>.  His
34         changes make the assembler run %40 faster on a pentium.  This is just
35         a case of getting the instruction sequence 'just right'.
36         All credit to 'Svend' :-)
37         Quite a few special x86 'make' targets.
38         A libdes-l (lite) distribution.
39
40 Version 4.00
41         After a bit of a pause, I'll up the major version number since this
42         is mostly a performace release.  I've added x86 assembler and
43         added more options for performance.  A %28 speedup for gcc 
44         on a pentium and the assembler is a %50 speedup.
45         MIPS CPU's, sparc and Alpha are the main CPU's with speedups.
46         Run des_opts to work out which options should be used.
47         DES_RISC1/DES_RISC2 use alternative inner loops which use
48         more registers but should give speedups on any CPU that does
49         dual issue (pentium).  DES_UNROLL unrolls the inner loop,
50         which costs in code size.
51
52 Version 3.26
53         I've finally removed one of the shifts in D_ENCRYPT.  This
54         meant I've changed the des_SPtrans table (spr.h), the set_key()
55         function and some things in des_enc.c.  This has definitly
56         made things faster :-).  I've known about this one for some
57         time but I've been too lazy to follow it up :-).
58         Noticed that in the D_ENCRYPT() macro, we can just do L^=(..)^(..)^..
59         instead of L^=((..)|(..)|(..)..  This should save a register at
60         least.
61         Assember for x86.  The file to replace is des_enc.c, which is replaced
62         by one of the assembler files found in asm.  Look at des/asm/readme
63         for more info.
64
65         /* Modification to fcrypt so it can be compiled to support
66         HPUX 10.x's long password format, define -DLONGCRYPT to use this.
67         Thanks to Jens Kupferschmidt <bt1cu@hpboot.rz.uni-leipzig.de>. */
68
69         SIGWINCH case put in des_read_passwd() so the function does not
70         'exit' if this function is recieved.
71
72 Version 3.25 17/07/96
73         Modified read_pwd.c so that stdin can be read if not a tty.
74         Thanks to Jeff Barber <jeffb@issl.atl.hp.com> for the patches.
75         des_init_random_number_generator() shortened due to VMS linker
76         limits.
77         Added RSA's DESX cbc mode.  It is a form of cbc encryption, with 2
78         8 byte quantites xored before and after encryption.
79         des_xcbc_encryption() - the name is funny to preserve the des_
80         prefix on all functions.
81
82 Version 3.24 20/04/96
83         The DES_PTR macro option checked and used by SSLeay configuration
84
85 Version 3.23 11/04/96
86         Added DES_LONG.  If defined to 'unsigned int' on the DEC Alpha,
87         it gives a %20 speedup :-)
88         Fixed the problem with des.pl under perl5.  The patches were
89         sent by Ed Kubaitis (ejk@uiuc.edu).
90         if fcrypt.c, changed values to handle illegal salt values the way
91         normal crypt() implementations do.  Some programs apparently use
92         them :-(. The patch was sent by Bjorn Gronvall <bg@sics.se>
93
94 Version 3.22 29/11/95
95         Bug in des(1), an error with the uuencoding stuff when the
96         'data' is small, thanks to Geoff Keating <keagchon@mehta.anu.edu.au>
97         for the patch.
98
99 Version 3.21 22/11/95
100         After some emailing back and forth with 
101         Colin Plumb <colin@nyx10.cs.du.edu>, I've tweaked a few things
102         and in a future version I will probably put in some of the
103         optimisation he suggested for use with the DES_USE_PTR option.
104         Extra routines from Mark Murray <mark@grondar.za> for use in
105         freeBSD.  They mostly involve random number generation for use
106         with kerberos.  They involve evil machine specific system calls
107         etc so I would normally suggest pushing this stuff into the
108         application and/or using RAND_seed()/RAND_bytes() if you are
109         using this DES library as part of SSLeay.
110         Redone the read_pw() function so that it is cleaner and
111         supports termios, thanks to Sameer Parekh <sameer@c2.org>
112         for the initial patches for this.
113         Renamed 3ecb_encrypt() to ecb3_encrypt().  This has been
114          done just to make things more consistent.
115         I have also now added triple DES versions of cfb and ofb.
116
117 Version 3.20
118         Damn, Damn, Damn, as pointed out by Mike_Spreitzer.PARC@xerox.com,
119         my des_random_seed() function was only copying 4 bytes of the
120         passed seed into the init structure.  It is now fixed to copy 8.
121         My own suggestion is to used something like MD5 :-)
122
123 Version 3.19 
124         While looking at my code one day, I though, why do I keep on
125         calling des_encrypt(in,out,ks,enc) when every function that
126         calls it has in and out the same.  So I dropped the 'out'
127         parameter, people should not be using this function.
128
129 Version 3.18 30/08/95
130         Fixed a few bit with the distribution and the filenames.
131         3.17 had been munged via a move to DOS and back again.
132         NO CODE CHANGES
133
134 Version 3.17 14/07/95
135         Fixed ede3 cbc which I had broken in 3.16.  I have also
136         removed some unneeded variables in 7-8 of the routines.
137
138 Version 3.16 26/06/95
139         Added des_encrypt2() which does not use IP/FP, used by triple
140         des routines.  Tweaked things a bit elsewhere. %13 speedup on
141         sparc and %6 on a R4400 for ede3 cbc mode.
142
143 Version 3.15 06/06/95
144         Added des_ncbc_encrypt(), it is des_cbc mode except that it is
145         'normal' and copies the new iv value back over the top of the
146         passed parameter.
147         CHANGED des_ede3_cbc_encrypt() so that it too now overwrites
148         the iv.  THIS WILL BREAK EXISTING CODE, but since this function
149         only new, I feel I can change it, not so with des_cbc_encrypt :-(.
150         I need to update the documentation.
151
152 Version 3.14 31/05/95
153         New release upon the world, as part of my SSL implementation.
154         New copyright and usage stuff.  Basically free for all to use
155         as long as you say it came from me :-)
156
157 Version 3.13 31/05/95
158         A fix in speed.c, if HZ is not defined, I set it to 100.0
159         which is reasonable for most unixes except SunOS 4.x.
160         I now have a #ifdef sun but timing for SunOS 4.x looked very
161         good :-(.  At my last job where I used SunOS 4.x, it was
162         defined to be 60.0 (look at the old INSTALL documentation), at
163         the last release had it changed to 100.0 since I now work with
164         Solaris2 and SVR4 boxes.
165         Thanks to  Rory Chisholm <rchishol@math.ethz.ch> for pointing this
166         one out.
167
168 Version 3.12 08/05/95
169         As pointed out by The Crypt Keeper <tck@bend.UCSD.EDU>,
170         my D_ENCRYPT macro in crypt() had an un-necessary variable.
171         It has been removed.
172
173 Version 3.11 03/05/95
174         Added des_ede3_cbc_encrypt() which is cbc mode des with 3 keys
175         and one iv.  It is a standard and I needed it for my SSL code.
176         It makes more sense to use this for triple DES than
177         3cbc_encrypt().  I have also added (or should I say tested :-)
178         cfb64_encrypt() which is cfb64 but it will encrypt a partial
179         number of bytes - 3 bytes in 3 bytes out.  Again this is for
180         my SSL library, as a form of encryption to use with SSL
181         telnet.
182
183 Version 3.10 22/03/95
184         Fixed a bug in 3cbc_encrypt() :-(.  When making repeated calls
185         to cbc3_encrypt, the 2 iv values that were being returned to
186         be used in the next call were reversed :-(.
187         Many thanks to Bill Wade <wade@Stoner.COM> for pointing out
188         this error.
189
190 Version 3.09 01/02/95
191         Fixed des_random_key to far more random, it was rather feeble
192         with regards to picking the initial seed.  The problem was
193         pointed out by Olaf Kirch <okir@monad.swb.de>.
194
195 Version 3.08 14/12/94
196         Added Makefile.PL so libdes can be built into perl5.
197         Changed des_locl.h so RAND is always defined.
198
199 Version 3.07 05/12/94
200         Added GNUmake and stuff so the library can be build with
201         glibc.
202
203 Version 3.06 30/08/94
204         Added rpc_enc.c which contains _des_crypt.  This is for use in
205         secure_rpc v 4.0
206         Finally fixed the cfb_enc problems.
207         Fixed a few parameter parsing bugs in des (-3 and -b), thanks
208         to Rob McMillan <R.McMillan@its.gu.edu.au>
209
210 Version 3.05 21/04/94
211         for unsigned long l; gcc does not produce ((l>>34) == 0)
212         This causes bugs in cfb_enc.
213         Thanks to Hadmut Danisch <danisch@ira.uka.de>
214
215 Version 3.04 20/04/94
216         Added a version number to des.c and libdes.a
217
218 Version 3.03 12/01/94
219         Fixed a bug in non zero iv in 3cbc_enc.
220
221 Version 3.02 29/10/93
222         I now work in a place where there are 6+ architectures and 14+
223         OS versions :-).
224         Fixed TERMIO definition so the most sys V boxes will work :-)
225
226 Release upon comp.sources.misc
227 Version 3.01 08/10/93
228         Added des_3cbc_encrypt()
229
230 Version 3.00 07/10/93
231         Fixed up documentation.
232         quad_cksum definitely compatible with MIT's now.
233
234 Version 2.30 24/08/93
235         Triple DES now defaults to triple cbc but can do triple ecb
236          with the -b flag.
237         Fixed some MSDOS uuen/uudecoding problems, thanks to
238         Added prototypes.
239         
240 Version 2.22 29/06/93
241         Fixed a bug in des_is_weak_key() which stopped it working :-(
242         thanks to engineering@MorningStar.Com.
243
244 Version 2.21 03/06/93
245         des(1) with no arguments gives quite a bit of help.
246         Added -c (generate ckecksum) flag to des(1).
247         Added -3 (triple DES) flag to des(1).
248         Added cfb and ofb routines to the library.
249
250 Version 2.20 11/03/93
251         Added -u (uuencode) flag to des(1).
252         I have been playing with byte order in quad_cksum to make it
253          compatible with MIT's version.  All I can say is avid this
254          function if possible since MIT's output is endian dependent.
255
256 Version 2.12 14/10/92
257         Added MSDOS specific macro in ecb_encrypt which gives a %70
258          speed up when the code is compiled with turbo C.
259
260 Version 2.11 12/10/92
261         Speedup in set_key (recoding of PC-1)
262          I now do it in 47 simple operations, down from 60.
263          Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov)
264          for motivating me to look for a faster system :-)
265          The speedup is probably less that 1% but it is still 13
266          instructions less :-).
267
268 Version 2.10 06/10/92
269         The code now works on the 64bit ETA10 and CRAY without modifications or
270          #defines.  I believe the code should work on any machine that
271          defines long, int or short to be 8 bytes long.
272         Thanks to Shabbir J. Safdar (shabby@mentor.cc.purdue.edu)
273          for helping me fix the code to run on 64bit machines (he had
274          access to an ETA10).
275         Thanks also to John Fletcher <john_fletcher@lccmail.ocf.llnl.gov>
276          for testing the routines on a CRAY.
277         read_password.c has been renamed to read_passwd.c
278         string_to_key.c has been renamed to string2key.c
279
280 Version 2.00 14/09/92
281         Made mods so that the library should work on 64bit CPU's.
282         Removed all my uchar and ulong defs.  To many different
283          versions of unix define them in their header files in too many
284          different combinations :-)
285         IRIX - Sillicon Graphics mods (mostly in read_password.c).
286          Thanks to Andrew Daviel (advax@erich.triumf.ca)
287
288 Version 1.99 26/08/92
289         Fixed a bug or 2 in enc_read.c
290         Fixed a bug in enc_write.c
291         Fixed a pseudo bug in fcrypt.c (very obscure).
292
293 Version 1.98 31/07/92
294         Support for the ETA10.  This is a strange machine that defines
295         longs and ints as 8 bytes and shorts as 4 bytes.
296         Since I do evil things with long * that assume that they are 4
297         bytes.  Look in the Makefile for the option to compile for
298         this machine.  quad_cksum appears to have problems but I
299         will don't have the time to fix it right now, and this is not
300         a function that uses DES and so will not effect the main uses
301         of the library.
302
303 Version 1.97 20/05/92 eay
304         Fixed the Imakefile and made some changes to des.h to fix some
305         problems when building this package with Kerberos v 4.
306
307 Version 1.96 18/05/92 eay
308         Fixed a small bug in string_to_key() where problems could
309         occur if des_check_key was set to true and the string
310         generated a weak key.
311
312 Patch2 posted to comp.sources.misc
313 Version 1.95 13/05/92 eay
314         Added an alternative version of the D_ENCRYPT macro in
315         ecb_encrypt and fcrypt.  Depending on the compiler, one version or the
316         other will be faster.  This was inspired by 
317         Dana How <how@isl.stanford.edu>, and her pointers about doing the
318         *(ulong *)((uchar *)ptr+(value&0xfc))
319         vs
320         ptr[value&0x3f]
321         to stop the C compiler doing a <<2 to convert the long array index.
322
323 Version 1.94 05/05/92 eay
324         Fixed an incompatibility between my string_to_key and the MIT
325          version.  When the key is longer than 8 chars, I was wrapping
326          with a different method.  To use the old version, define
327          OLD_STR_TO_KEY in the makefile.  Thanks to
328          viktor@newsu.shearson.com (Viktor Dukhovni).
329
330 Version 1.93 28/04/92 eay
331         Fixed the VMS mods so that echo is now turned off in
332          read_password.  Thanks again to brennan@coco.cchs.su.oz.AU.
333         MSDOS support added.  The routines can be compiled with
334          Turbo C (v2.0) and MSC (v5.1).  Make sure MSDOS is defined.
335
336 Patch1 posted to comp.sources.misc
337 Version 1.92 13/04/92 eay
338         Changed D_ENCRYPT so that the rotation of R occurs outside of
339          the loop.  This required rotating all the longs in sp.h (now
340          called spr.h). Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
341         speed.c has been changed so it will work without SIGALRM.  If
342          times(3) is not present it will try to use ftime() instead.
343
344 Version 1.91 08/04/92 eay
345         Added -E/-D options to des(1) so it can use string_to_key.
346         Added SVR4 mods suggested by witr@rwwa.COM
347         Added VMS mods suggested by brennan@coco.cchs.su.oz.AU.  If
348         anyone knows how to turn of tty echo in VMS please tell me or
349         implement it yourself :-).
350         Changed FILE *IN/*OUT to *DES_IN/*DES_OUT since it appears VMS
351         does not like IN/OUT being used.
352
353 Libdes posted to comp.sources.misc
354 Version 1.9 24/03/92 eay
355         Now contains a fast small crypt replacement.
356         Added des(1) command.
357         Added des_rw_mode so people can use cbc encryption with
358         enc_read and enc_write.
359
360 Version 1.8 15/10/91 eay
361         Bug in cbc_cksum.
362         Many thanks to Keith Reynolds (keithr@sco.COM) for pointing this
363         one out.
364
365 Version 1.7 24/09/91 eay
366         Fixed set_key :-)
367         set_key is 4 times faster and takes less space.
368         There are a few minor changes that could be made.
369
370 Version 1.6 19/09/1991 eay
371         Finally go IP and FP finished.
372         Now I need to fix set_key.
373         This version is quite a bit faster that 1.51
374
375 Version 1.52 15/06/1991 eay
376         20% speedup in ecb_encrypt by changing the E bit selection
377         to use 2 32bit words.  This also required modification of the
378         sp table.  There is still a way to speedup the IP and IP-1
379         (hints from outer@sq.com) still working on this one :-(.
380
381 Version 1.51 07/06/1991 eay
382         Faster des_encrypt by loop unrolling
383         Fixed bug in quad_cksum.c (thanks to hughes@logos.ucs.indiana.edu)
384
385 Version 1.50 28/05/1991 eay
386         Optimised the code a bit more for the sparc.  I have improved the
387         speed of the inner des_encrypt by speeding up the initial and
388         final permutations.
389
390 Version 1.40 23/10/1990 eay
391         Fixed des_random_key, it did not produce a random key :-(
392
393 Version 1.30  2/10/1990 eay
394         Have made des_quad_cksum the same as MIT's, the full package
395         should be compatible with MIT's
396         Have tested on a DECstation 3100
397         Still need to fix des_set_key (make it faster).
398         Does des_cbc_encrypts at 70.5k/sec on a 3100.
399
400 Version 1.20 18/09/1990 eay
401         Fixed byte order dependencies.
402         Fixed (I hope) all the word alignment problems.
403         Speedup in des_ecb_encrypt.
404
405 Version 1.10 11/09/1990 eay
406         Added des_enc_read and des_enc_write.
407         Still need to fix des_quad_cksum.
408         Still need to document des_enc_read and des_enc_write.
409
410 Version 1.00 27/08/1990 eay
411