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