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