* random.c: "warning" -> "WARNING"
[gnupg.git] / cipher / ChangeLog
1 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
2
3         * random.c: "warning" -> "WARNING"
4
5 2002-07-02  Werner Koch  <wk@gnupg.org>
6
7         * rndw32.c (slow_gatherer_windowsNT): Use a simple array for the
8         disk performance structure and increase it to the size required by
9         W2000.
10
11 2002-06-29  Werner Koch  <wk@gnupg.org>
12
13         * rndlinux.c: Removed HAVE_LINUX_RANDOM_H conditional because it
14         was never used and the configure test did set the wrong macro
15         anyway.
16
17 2002-05-07  Stefan Bellon  <sbellon@sbellon.de>
18
19         * md.c (md_start_debug): Use EXTSEP_S instead of ".".
20
21 2002-04-24  Werner Koch  <wk@gnupg.org>
22
23         * tiger.c (tiger_final): Removed superfluous token pasting operators.
24         * md5.c (md5_final): Ditto.
25
26 2002-04-22  Stefan Bellon  <sbellon@sbellon.de>
27
28         * rndriscos.c (func_table): Made func a function pointer.
29         (init_device): Improved loading of CryptRandom module.
30
31 2002-04-18  Werner Koch  <wk@gnupg.org>
32
33         * rndlinux.c, rndegd.c, rndunix.c (func_table): Made func a
34         function pointer.  Note that we still need to change the module
35         interface to cope with data vs function pointer problems.  Hmmm,
36         even dlsym has a problem with this.
37
38 2002-04-10  David Shaw  <dshaw@jabberwocky.com>
39
40         * cipher.c (setup_cipher_table, cipher_open, cipher_encrypt,
41         cipher_decrypt, dummy_setkey, dummy_encrypt_block,
42         dummy_decrypt_block): the dummy cipher should only be built on
43         development versions.
44
45 2002-04-06  Werner Koch  <wk@gnupg.org>
46
47         * rijndael.c (rijndael_get_info): We do only support a 128 bit
48         blocksize so it makes sense to change the algorithm strings to
49         AES.
50         * cipher.c (string_to_cipher_algo): Map "RIJNDAEL" to "AES".
51
52 2002-02-14  Werner Koch  <wk@gnupg.org>
53
54         * random.c (mix_pool): Removed the failsafe stuff again.  It makes
55         the code more complicate and may give the path to more bugs.
56
57 2002-02-10  Werner Koch  <wk@gnupg.org>
58
59         * random.c (mix_pool): Carry an extra failsafe_digest buffer
60         around to make the function more robust.
61
62 2002-02-08  Werner Koch  <wk@gnupg.org>
63
64         * random.c (add_randomness): Xor new data into the pool and not
65         just copy it.  This avoids any choosen input attacks which are not
66         serious in our setting because an outsider won't be able to mix
67         data in and even then we keep going with a PRNG.  Thanks to Stefan
68         Keller for pointing this out.
69
70 2002-01-02  Stefan Bellon  <sbellon@sbellon.de>
71
72         * rndriscos.c [__riscos__]: Updated include file name.
73
74 2001-12-21  Werner Koch  <wk@gnupg.org>
75
76         * Makefile.am (DISCLEANFILES): Add construct.c
77
78 2001-12-19  Werner Koch  <wk@gnupg.org>
79
80         * rndw32.c [CYGWIN32]: Include winioctl.h.  By Disastry.
81
82 2001-11-08  Werner Koch  <wk@gnupg.org>
83
84         * primegen.c (gen_prime): Set 2 high order bits for secret primes.
85         * rsa.c (generate): Loop until we find the exact modulus size.
86         Changed the exponent to 41.
87
88 2001-10-22  Werner Koch  <wk@gnupg.org>
89
90         * Makefile.am: Need to use $(EXEEXT) where approriate.
91
92 2001-09-09  Werner Koch  <wk@gnupg.org>
93
94         * rsa.c (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
95
96 2001-08-24  Werner Koch  <wk@gnupg.org>
97
98         * md.c (md_write): Made buf arg const.
99
100 2001-08-22  Werner Koch  <wk@gnupg.org>
101
102         * random.c (fast_random_poll): Don't use gethrtime if it is broken.
103
104 2001-08-20  Werner Koch  <wk@gnupg.org>
105
106         Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
107         RISC OS.  Nearly all of these patches are identified by the
108         __riscos__ macro.
109         * blowfish.c, twofish.c: Added pragmas for use with a Norcraft
110         compiler. 
111         * dynload.c, md5.c, rmd160.c, sha1.c: Minor patches for RISC OS.
112         * rndriscos.c: New.
113         * rnd-internal.h: Added prototype.
114         * random.c (fast_random_poll): Use '#if defined' instead of just
115         'defined'; needed for RISC OS.
116         * primegen.c (gen_prime): count? are now ints for consistence
117         with is_prime().
118
119 2001-08-08  Werner Koch  <wk@gnupg.org>
120
121         * rndw32.c (gather_random): Use toolhelp in addition to the NT
122         gatherer for Windows2000.  Suggested by Sami Tolvanen.
123
124         * random.c (read_pool): Fixed length check, this used to be one
125         byte to strict.  Made an assert out of it because the caller has
126         already made sure that only poolsize bytes are requested.
127         Reported by Marcus Brinkmann.
128
129 2001-07-18  Werner Koch  <wk@gnupg.org>
130
131         * rndlinux.c (gather_random): casted a size_t arg to int so that
132         the format string is correct.  Casting is okay here and avoids
133         translation changes. 
134
135 2001-06-12  Werner Koch  <wk@gnupg.org>
136
137         * cipher.c (string_to_cipher_algo): Use ascii_strcasecmp().
138         * md.c (string_to_digest_algo): Ditto.
139         * pubkey.c (string_to_pubkey_algo): Ditto.
140         * rndw32.c (slow_gatherer_windowsNT): Ditto.  Not really needed
141         here but anyway.
142
143 2001-04-29  Werner Koch  <wk@gnupg.org>
144
145         * random.c (fast_random_poll): Do not check the return code of
146         getrusage.
147
148 2001-04-17  Werner Koch  <wk@gnupg.org>
149
150         * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
151         and 8.
152
153 2001-04-16  Werner Koch  <wk@gnupg.org>
154
155         * dynload.c [__MINGW32__]: Applied patch from Timo Schulz to make
156         it work under W32.  This patches is based on the one from
157         Disastry@saiknes.lv
158
159 2001-04-06  Werner Koch  <wk@gnupg.org>
160
161         * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c (burn_stack):
162         New.  Add wrappers for most functions to be able to call
163         burn_stack after the function invocation. This methods seems to be
164         the most portable way to zeroise the stack used. It does only work
165         on stack frame based machines but it is highly portable and has no
166         side effects.  Just setting the automatic variables at the end of
167         a function to zero does not work well because the compiler will
168         optimize them away - marking them as volatile would be bad for
169         performance.
170         * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
171         * random.c (burn_stack): New.
172         (mix_pool): Use it here to burn the stack of the mixblock function.
173         
174 2001-04-02  Werner Koch  <wk@gnupg.org>
175
176         * primegen.c (generate_elg_prime): I was not initialized for mode
177         != 1.  Freed q at 3 places.  Thanks to  Tommi Komulainen.
178
179 2001-03-28  Werner Koch  <wk@gnupg.org>
180
181         * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
182         to disastry@saiknes.lv for pointing out that it was horrible wrong
183         for more than 512MB of input.
184         * sha1.c (sha1_final): Ditto.
185         * rmd160.c (rmd160_final): Ditto.
186         * tiger.c (tiger_final): Ditto.
187
188 2001-03-19  Werner Koch  <wk@gnupg.org>
189
190         * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
191         avoid name clahses with an encrypt function in stdlib.h of
192         Dynix/PIX.  Thanks to Gene Carter.
193         * elgamal.c (encrypt,do_encrypt): Ditto.
194
195 2001-03-12  Werner Koch  <wk@gnupg.org>
196
197         * twofish.c (gnupgext_enum_func): Add some static when comnpiled
198         as a module.
199
200         * tiger.c (tiger_get_info): Return "TIGER192" and not just
201         "TIGER".  By Edwin Woudt.
202
203 2001-03-08  Werner Koch  <wk@gnupg.org>
204
205         * random.c: Always include time.h - standard requirement.  Thanks
206         to James Troup.
207
208 2001-01-18  Werner Koch  <wk@gnupg.org>
209
210         * rndw32.c: Fixed typo and wrong ifdef for VER_PLATFORM* macro
211
212 2001-01-12  Werner Koch  <wk@gnupg.org>
213
214         * cipher.c (cipher_encrypt,cipher_encrypt): Use blocksize and
215         not 8 for CBC mode (However: we don't use CBS in OpenPGP).
216
217 2000-11-22  Werner Koch  <wk@gnupg.org>
218
219         * rndegd.c (gather_random): Fixed default socket to be '=entropy'.
220         Thanks to Tomasz Kozlowski.
221
222 2000-10-12  Werner Koch  <wk@gnupg.org>
223
224         * rijndael.c: New.
225         * cipher.c: Add Rijndael support.
226
227 Wed Oct  4 15:50:18 CEST 2000  Werner Koch  <wk@openit.de>
228
229         * sha1.c (transform): Use rol() macro.  Actually this is not needed
230         for a newer gcc but there are still aoter compilers.
231
232 Thu Sep 14 14:20:38 CEST 2000  Werner Koch  <wk@openit.de>
233
234         * random.c (fast_random_poll): Check ENOSYS for getrusage.
235         * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
236
237 Wed Sep 13 18:12:34 CEST 2000  Werner Koch  <wk@openit.de>
238
239         * rsa.c (secret): Speed up by using the CRT.  For a 2k keys this
240         is about 3 times faster.
241         (stronger_key_check): New but unused code to check the secret key.
242
243 Wed Sep  6 17:55:47 CEST 2000  Werner Koch  <wk@openit.de>
244
245         * rsa.c: Changed the comment about the patent.
246         * Makefile.am: Included rsa.[ch].
247         * pubkey.c: Enabled RSA support.
248         (pubkey_get_npkey): Removed RSA workaround.
249
250 Fri Aug 25 16:05:38 CEST 2000  Werner Koch  <wk@openit.de>
251
252         * rndlinux.c (open_device): Loose random device checking.
253         By Nils Ellmenreich.
254
255         * rndegd.c (gather_random): Name of socket is nom configurable.
256
257 Wed Jun 28 11:54:44 CEST 2000  Werner Koch  <wk@>
258
259   * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
260   * pubkey.c (setup_pubkey_table): Added commented support for RSA.
261
262 Fri Jun  9 10:09:52 CEST 2000  Werner Koch  <wk@openit.de>
263
264   * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
265   (my_popen): Do the FD_CLOEXEC only if it is available
266   (start_gatherer): Cope with missing _SC_OPEN_MAX
267
268 Sun May 28 13:55:17 CEST 2000  Werner Koch  <wk@openit.de>
269
270   * random.c (read_seed_file): Binary open for DOSish system
271   (update_random_seed_file): Ditto.
272
273   * rndw32.c: Add some debuging code enabled by an environment variable.
274
275 Tue May 23 09:19:00 CEST 2000  Werner Koch  <wk@openit.de>
276
277         * rndw32.c: Started with alternative code to replace entropy.dll
278
279 Thu May 18 11:38:54 CEST 2000  Werner Koch  <wk@openit.de>
280
281         * primegen.c (register_primegen_progress): New.
282         * dsa.c (register_pk_dsa_progress): New.
283         * elgamal.c (register_pk_elg_progress): New.
284
285 Fri Apr 14 19:37:08 CEST 2000  Werner Koch  <wk@openit.de>
286
287         * twofish.c (twofish_get_info): Fixed warning about cast.
288
289 Tue Mar 28 14:26:58 CEST 2000  Werner Koch  <wk@openit.de>
290
291         * random.c [MINGW32]: Include process.h for getpid.
292
293 Thu Mar  2 15:37:46 CET 2000  Werner Koch  <wk@gnupg.de>
294
295         * random.c (fast_random_poll): Add clock_gettime() as fallback for
296         system which support this POSIX.4 fucntion. By Sam Roberts.
297
298         * rndunix.c: Add some more headers for QNX. By Sam Roberts.
299
300         * random.c (read_seed_file): Removed the S_ISLNK test becuase it
301         is already covered by !S_ISREG and is not defined in Unixware.
302         Reported by Dave Dykstra.
303
304         * sha1.c (sha1_get_info): Removed those stupid double lines. Dave
305         is really a good lint.
306
307 Wed Feb 23 10:07:57 CET 2000  Werner Koch  <wk@gnupg.de>
308
309         * twofish.c (twofish_get_info): Add some const to the casts.  By Martin
310         Kahlert.
311
312 Mon Feb 14 14:30:20 CET 2000  Werner Koch  <wk@gnupg.de>
313
314         (update_random_seed_file): Silently ignore update request when pool
315         is not filled.
316
317 Fri Feb 11 17:44:40 CET 2000  Werner Koch  <wk@gnupg.de>
318
319         * random.c (read_seed_file): New.
320         (set_random_seed_file): New.
321         (read_pool): Try to read the seeding file.
322         (update_random_seed_file): New.
323
324         (read_pool): Do an initial extra seeding when level 2 quality random
325         is requested the first time.  This requestes at least POOLSIZE/2 bytes
326         of entropy.  Compined with the seeding file this should make normal
327         random bytes cheaper and increase the quality of the random bytes
328         used for key generation.
329
330         * rndegd.c (gather_random): Shortcut level 0.
331         * rndunix.c (gather_random): Ditto.
332         * rndw32.c (gather_random): Ditto.
333
334 Fri Jan 14 18:32:01 CET 2000  Werner Koch  <wk@gnupg.de>
335
336         * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
337         problem with UTS4.3.  Suggested by Dave Dykstra.
338         * sha1.c (sha1_get_info): Ditto.
339         * tiger.c (tiger_get_info): Ditto.
340         * md5.c (md5_get_info): Ditto
341         * des.c (des_get_info): Ditto.
342         * blowfish.c (blowfish_get_info): Ditto.
343         * cast5.c (cast5_get_info): Ditto.
344         * twofish.c (twofish_get_info): Ditto.
345
346 Thu Jan 13 19:31:58 CET 2000  Werner Koch  <wk@gnupg.de>
347
348         * elgamal.c (wiener_map): New.
349         (gen_k): Use a much smaller k.
350         (generate): Calculate the qbits using the wiener map and
351         choose an x at a size comparable to the one choosen in gen_k
352
353         * random.c (read_pool): Print a more friendly error message in
354         cases when too much random is requested in one call.
355
356         * Makefile.am (tiger): Replaced -O1 by -O. Suggested by Alec Habig.
357
358 Sat Dec  4 12:30:28 CET 1999  Werner Koch  <wk@gnupg.de>
359
360         * primegen.c (generate_elg_prime): All primes are now generated with
361         the lowest random quality level.  Becuase they are public anyway we
362         don't need stronger random and by this we do not drain the systems
363         entropy so much.
364
365 Thu Oct 28 16:08:20 CEST 1999  Werner Koch  <wk@gnupg.de>
366
367         * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
368         this is not the case for some ESIX and Unixware, although they have
369         getrusage().
370
371         * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
372
373 Mon Oct 11 09:24:12 CEST 1999  Werner Koch  <wk@gnupg.de>
374
375         * rndw32.c (gather_random): Handle PCP_SEEDER_TOO_SMALL.
376
377 Sat Oct  9 20:34:41 CEST 1999  Werner Koch  <wk@gnupg.de>
378
379         * Makefile.am:  Tweaked module build and removed libtool
380
381 Fri Oct  8 20:32:01 CEST 1999  Werner Koch  <wk@gnupg.de>
382
383         * rndw32.c (load_and_init_winseed): Use the Registry to locate the DLL
384
385 Mon Oct  4 21:23:04 CEST 1999  Werner Koch  <wk@gnupg.de>
386
387         * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
388         fixing this bug.
389
390 Sat Sep 18 12:51:51 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
391
392
393         * Makefile.am: Never compile mingw32 as module
394
395 Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
396
397         * des.c: Various speed improvements: One bit pre rotation
398           trick after initial permutation (Richard Outerbridge).
399           Finished test of SSLeay Tripple-DES patterns.
400
401 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
402
403         * rndw32.c: New.
404
405 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
406
407         * bithelp.h: New.
408         * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
409
410 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
411
412         * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
413
414 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
415
416         * des.c (selftest): Add some testpattern
417
418 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
419
420         * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
421         in place encryption. Pointed out by Frank Stajano.
422
423 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
424
425         * md5.c (md5_final): Fix for a SCO cpp bug.
426
427 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
428
429         * elgamal.c (elg_check_secret_key,elg_encrypt
430         elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
431         * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
432
433         * pubkey.c (disable_pubkey_algo): New.
434         (check_pubkey_algo2): Look at disabled algo table.
435         * cipher.c (disable_cipher_algo): New.
436         (check_cipher_algo): Look at disabled algo table.
437
438 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
439
440         * Makefile.am: Support for libtool.
441
442 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
443
444         * dsa.c (gen_k): Changed algorithm to consume less random bytes
445         * elgamal.c (gen_k): Ditto.
446
447         * random.c (random_dump_stats): New.
448
449 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
450
451         * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
452         fputc with a call to this function.
453
454 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
455
456         * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
457
458         * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
459
460         * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
461         * Makefile.am (install-exec-hook): Removed.
462
463 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
464
465         * cipher.c (setup_cipher_table): Enable Twofish
466
467         * random.c (fast_random_poll): Disable use of times() for mingw32.
468
469 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
470
471         * dynload.c (register_internal_cipher_extension): Minor init fix.
472
473 Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
474
475         * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
476         that we didn't correct for step when passing the prime to the
477         Rabin-Miller test which led to bad performance (Stefan Keller).
478         (check_prime): Add a first Fermat test.
479
480 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
481
482         * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
483
484         * random.c (randomize_buffer): alway use secure memory because
485         we can't use m_is_secure() on a statically allocated buffer.
486
487         * twofish.c: Replaced some macros by a loop to reduce text size.
488         * Makefile.am (twofish): No more need for sed editing.
489
490 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
491
492         * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
493
494         * blowfish.c: Dropped the Blowfish 160 mode.
495         * cipher.c (cipher_open): Ditto.
496         (setup_cipher_table): Ditto.  And removed support of twofish128
497
498 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
499
500         * random.c (get_random_bits): Can now handle requests > POOLSIZE
501
502         * cipher.c (cipher_open): Now uses standard CFB for automode if
503         the blocksize is gt 8 (according to rfc2440).
504
505         * twofish.c: Applied Matthew Skala's patches for 256 bit key.
506
507 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
508
509         * random.c (get_random_bits): Can now handle requests > POOLSIZE
510
511         * cipher.c (cipher_open): Now uses standard CFB for automode if
512         the blocksize is gt 8 (according to rfc2440).
513
514 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
515
516         * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
517
518         * rndegd.c (gather_random): Some fixes.
519
520 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
521
522         * rndegd.c (do_read): New.
523         (gather_random): Changed the implementation.
524
525 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
526
527         * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
528
529 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
530
531         * md.c: Nearly a total rewrote.
532
533 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
534
535         * cipher.c (context): Fixed alignment
536         * md.c: Ditto.
537
538         * rndegd.c: New
539
540 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
541
542         * rndegd.c: New.
543
544 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
545
546         * Makefile.am: Modules are now figured out by configure
547         * construct.c: New. Generated by configure. Changed all modules
548         to work with that.
549         * sha1.h: Removed.
550         * md5.h: Removed.
551
552         * twofish.c: Changed interface to allow Twofish/256
553
554         * rndunix.c (start_gatherer): Die on SIGPIPE.
555
556 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
557
558         * rndunix.c (gather_random): Fix to avoid infinite loop.
559
560 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
561
562         * des.c (is_weak_key): Replace system memcmp due to bugs
563         in SunOS's memcmp.
564         (des_get_info): Return error on failed selftest.
565         * twofish.c (twofish_setkey): Return error on failed selftest or
566         invalid keylength.
567         * cast5.c (cast_setkey): Ditto.
568         * blowfish.c (bf_setkey): Return error on failed selftest.
569
570 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
571
572         * random.c (random_is_faked): New.
573
574         * tiger.c: Only compile if we have the u64 type
575
576 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
577
578         * rndunix.c (gather_random): check for setuid.
579
580         * Makefile.am: Add a way to staically link random modules
581
582 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
583
584         * md.c (md_stop_debug): Do a flush first.
585         (md_open): size of buffer now depends on the secure parameter
586
587 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
588
589         * rndunix.c (start_gatherer): Fixed stupid ==/= bug
590
591 1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
592
593         * des.c (is_weak_key): Rewrite loop end condition.
594
595 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
596
597         * random.c: add unistd.h for getpid().
598         (RAND_MAX): Fallback value for Sun.
599
600 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
601
602         * md.c (md_copy): Reset debug.
603
604 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
605
606         * random.c (read_random_source): Changed the interface to the
607         random gathering function.
608         (gather_faked): Use new interface.
609         * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
610         (dynload_getfnc_gather_random): Ditto.
611         * rndlinux.c (gather_random): Ditto.
612         * rndunix.c (gather_random): Ditto.
613
614 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
615
616         * dynload.c (SYMBOL_VERSION): New to cope with system which needs
617         underscores.
618
619         * rndunix.c: Rewrote large parts
620
621 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
622
623         * dynload.c (load_extension): increased needed verbosity level.
624
625         * random.c (fast_random_poll): Fallback to a default fast random
626         poll function.
627         (read_random_source): Always use the faked entroy gatherer if no
628         gather module is available.
629         * rndlinux.c (fast_poll): Removed.
630         * rndunix.c (fast_poll): Removed.
631
632
633 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
634
635         * rand-*.c: Removed.
636         * rndlinux.c : New.
637         * rndunix.c : New.
638         * random.c : Restructured the interface to the gather modules.
639         (intialize): Call constructor functions
640         (read_radnom_source): Moved to here.
641         * dynload.c (dynload_getfnc_gather_random): New.
642         (dynload_getfnc_fast_random_poll): New.
643         (register_internal_cipher_extension): New.
644         (register_cipher_extension): Support of internal modules.
645
646 Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
647
648         * rand-unix.c (read_random_source): Removed the assert.
649
650 Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
651
652         * pubkey.c: Hack to allow us to give some info about RSA keys back.
653
654 Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
655
656         * dynload.c: Support for DLD
657
658 Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
659
660         * rand-unix.c: Now uses names from configure for /dev/random.
661
662 1998-10-10  SL Baur  <steve@altair.xemacs.org>
663
664         * Makefile.am: fix sed -O substitutions to catch -O6, etc.
665
666 Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
667
668         * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
669         * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
670
671 Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
672
673         * md.c (md_digest): New.
674         (md_reset): New.
675
676 Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
677
678         * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
679
680 Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
681
682         * des.c: Some patches from Michael.
683
684 Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
685
686         * des.c : New file from Michael Roth <mroth@nessie.de>
687
688 Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
689
690         * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
691
692 Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
693
694         * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
695
696 Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
697
698         * Makefile.am: Fixes to allow a different build directory
699
700 Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
701
702         * random.c (get_random_byte): Removed and changed all callers
703         to use get_random_bits()
704
705 Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
706
707         * cipher.c : Support for other blocksizes
708         (cipher_get_blocksize): New.
709         * twofish.c: New.
710         * Makefile.am: Add twofish module.
711
712 Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
713
714         * random.c (read_pool): Simple alloc if secure_alloc is not set.
715         (get_random_bits): Ditto.
716
717 Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
718
719         * dynload.c (load_extension): Function now nbails out if
720         the program is run setuid.
721
722 Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
723
724         * rmd160.c (rmd160_hash_buffer): New.
725
726 Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
727
728         * cipher.c (cipher_open): algos >=100 use standard CFB
729
730 Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
731
732         * Makefile.am: Support for extensions
733
734 Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
735
736         * random.c (mix_pool): simpler handling for level 0
737
738 Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
739
740         * tiger.c: Removed from dist, will reappear as dynload module
741
742 Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
743
744         * pubkey.c: Major changes to allow extensions. Changed the inteface
745         of all public key ciphers and added the ability to load extensions
746         on demand.
747
748         * misc.c: Removed.
749
750 Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
751
752         * dynload.c: New.
753         * cipher.c: Major changes to allow extensions.
754
755 Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
756
757         * cipher.c: Major internal chnages to support extensions.
758         * blowfish.c (blowfish_get_info): New and made all internal
759         functions static, changed heder.
760         * cast5.c (cast5_get_info): Likewise.
761
762 Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
763
764         * tiger.c (transform): Fix for big endian
765
766         * cipher.c (do_cfb_decrypt): Big endian fix.
767
768 Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
769
770         * md.c (md_get_oid): Add a new one for TIGER.
771
772 Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
773
774         * cipher.c: Add support for a dummy cipher
775
776 Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
777
778         * rmd160.c (transform): fixed sigbus - I should better
779         add Christian von Roques's new implemenation of rmd160_write.
780
781 Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
782
783         * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
784         * random.c: Moved system specific functions to rand-****.c
785
786 Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
787
788         * random.c (fast_random_poll): add call to gethrtime.
789
790 Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
791
792         * elgamal.c (elg_generate): choosing x was not correct, could
793         yield 6 bytes which are not from the random pool, tsss, tsss..
794
795 Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
796
797         * primegen.c (generate_elg_prime): Add arg mode, changed all
798         callers and implemented mode 1.
799
800 Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
801
802         * cipher.c (cipher_get_keylen): New.
803
804 Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
805
806         * tiger.c, tiger.h: New.
807
808 Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
809
810         * misc.c (check_pubkey_algo2): New.
811
812 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
813
814         * cipher.c: New
815         * misc.c (check_cipher_algo): Moved to cipher.c
816         * cast5.c: Moved many functions to cipher.c
817         * blowfish.c: Likewise.
818
819 Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
820
821         * cast5.c: Implemented and tested.
822
823 Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
824
825         * elgamal.c (elg_generate): Faster generation of x in some cases.
826
827 Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
828
829         * blowfish.c (blowfish_decode_cfb): changed XOR operation
830         (blowfish_encode_cfb): Ditto.
831
832 Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
833
834         * sha1.c (transform): Rewrote
835
836         * blowfish.c (encrypt): Unrolled for rounds == 16
837         (decrypt): Ditto.
838
839 Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
840
841         * rmd160.c (transform): Unrolled the loop.
842
843 Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
844
845         * random.c (read_pool): Add pool_balance stuff.
846         (get_random_bits): New.
847
848         * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
849
850
851 Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
852
853         * md.c (md_digest_length): New.
854
855 Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
856
857         * dsa.c (dsa_verify): Works.
858
859 Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
860
861         * dsa.c, dsa.h: Removed some unused code.
862
863 Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
864
865         * md.c (md_open): Add call to fast_random_poll.
866         blowfish.c (blowfish_setkey): Ditto.
867
868 Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
869
870         * rmd160.c (rmd160_mixblock): New.
871         * random.c: Restructured to start with a new RNG implementation.
872         * random.h: New.
873
874 Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
875
876         * gost.c, gost.h: Removed because they did only conatin trash.
877
878 Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
879
880         * random.c (fill_buffer): removed error message if n == -1.
881
882 Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
883
884         * md.c (md_enable): No init if called twice.
885
886 Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
887
888         * primegen.c (generate_elg_prime): Changed the progress printing.
889         (gen_prime): Ditto.
890
891 Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
892
893         * md5.c, md.5 : Replaced by a modified version of md5.c from
894         GNU textutils 1.22.
895
896 Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
897
898         * md.c, md.h : New debugging support
899
900 Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
901
902         * misc.c (cipher_algo_to_string): New
903         (pubkey_algo_to_string): New.
904         (digest_algo_to_string): New.
905
906
907
908  Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
909
910  This file is free software; as a special exception the author gives
911  unlimited permission to copy and/or distribute it, with or without
912  modifications, as long as this notice is preserved.
913
914  This file is distributed in the hope that it will be useful, but
915  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
916  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
917
918