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