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